{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project 4: Multi-factor Model\n",
    "## Instructions\n",
    "Each problem consists of a function to implement and instructions on how to implement the function.  The parts of the function that need to be implemented are marked with a `# TODO` comment. After implementing the function, run the cell to test it against the unit tests we've provided. For each problem, we provide one or more unit tests from our `project_tests` package. These unit tests won't tell you if your answer is correct, but will warn you of any major errors. Your code will be checked for the correct solution when you submit it to Udacity.\n",
    "\n",
    "## Packages\n",
    "When you implement the functions, you'll only need to you use the packages you've used in the classroom, like [Pandas](https://pandas.pydata.org/) and [Numpy](http://www.numpy.org/). These packages will be imported for you. We recommend you don't add any import statements, otherwise the grader might not be able to run your code.\n",
    "\n",
    "The other packages that we're importing are `project_helper` and `project_tests`. These are custom packages built to help you solve the problems.  The `project_helper` module contains utility functions and graph functions. The `project_tests` contains the unit tests for all the problems.\n",
    "\n",
    "### Install Packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting alphalens==0.3.2 (from -r requirements.txt (line 1))\n",
      "  Downloading https://files.pythonhosted.org/packages/a5/dc/2f9cd107d0d4cf6223d37d81ddfbbdbf0d703d03669b83810fa6b97f32e5/alphalens-0.3.2.tar.gz (18.9MB)\n",
      "\u001b[K    100% |████████████████████████████████| 18.9MB 25kB/s  eta 0:00:01   32% |██████████▎                     | 6.1MB 29.7MB/s eta 0:00:01    39% |████████████▋                   | 7.5MB 24.3MB/s eta 0:00:01    47% |███████████████                 | 8.9MB 31.1MB/s eta 0:00:01    54% |█████████████████▍              | 10.3MB 28.6MB/s eta 0:00:01    83% |██████████████████████████▋     | 15.7MB 26.4MB/s eta 0:00:01    90% |████████████████████████████▉   | 17.0MB 26.8MB/s eta 0:00:01    97% |███████████████████████████████ | 18.4MB 28.9MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: colour==0.1.5 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 2))\n",
      "Collecting cvxpy==1.0.3 (from -r requirements.txt (line 3))\n",
      "  Downloading https://files.pythonhosted.org/packages/a1/59/2613468ffbbe3a818934d06b81b9f4877fe054afbf4f99d2f43f398a0b34/cvxpy-1.0.3.tar.gz (880kB)\n",
      "\u001b[K    100% |████████████████████████████████| 880kB 522kB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: cycler==0.10.0 in /opt/conda/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg (from -r requirements.txt (line 4))\n",
      "Collecting numpy==1.13.3 (from -r requirements.txt (line 5))\n",
      "  Downloading https://files.pythonhosted.org/packages/57/a7/e3e6bd9d595125e1abbe162e323fd2d06f6f6683185294b79cd2cdb190d5/numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl (17.0MB)\n",
      "\u001b[K    100% |████████████████████████████████| 17.0MB 27kB/s  eta 0:00:01  4% |█▎                              | 706kB 24.5MB/s eta 0:00:01    26% |████████▍                       | 4.5MB 25.7MB/s eta 0:00:01    47% |███████████████▍                | 8.1MB 19.9MB/s eta 0:00:01    54% |█████████████████▎              | 9.2MB 22.7MB/s eta 0:00:01    84% |███████████████████████████     | 14.3MB 21.9MB/s eta 0:00:01    96% |██████████████████████████████▊ | 16.3MB 22.4MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting pandas==0.18.1 (from -r requirements.txt (line 6))\n",
      "  Downloading https://files.pythonhosted.org/packages/11/09/e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/pandas-0.18.1.tar.gz (7.3MB)\n",
      "\u001b[K    100% |████████████████████████████████| 7.3MB 60kB/s  eta 0:00:01   2% |▉                               | 184kB 20.1MB/s eta 0:00:01    33% |██████████▊                     | 2.4MB 24.7MB/s eta 0:00:01    81% |██████████████████████████▎     | 6.0MB 25.2MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting plotly==2.2.3 (from -r requirements.txt (line 7))\n",
      "  Downloading https://files.pythonhosted.org/packages/99/a6/8214b6564bf4ace9bec8a26e7f89832792be582c042c47c912d3201328a0/plotly-2.2.3.tar.gz (1.1MB)\n",
      "\u001b[K    100% |████████████████████████████████| 1.1MB 416kB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: pyparsing==2.2.0 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 8))\n",
      "Requirement already satisfied: python-dateutil==2.6.1 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 9))\n",
      "Requirement already satisfied: pytz==2017.3 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 10))\n",
      "Requirement already satisfied: requests==2.18.4 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 11))\n",
      "Collecting scipy==1.0.0 (from -r requirements.txt (line 12))\n",
      "  Downloading https://files.pythonhosted.org/packages/d8/5e/caa01ba7be11600b6a9d39265440d7b3be3d69206da887c42bef049521f2/scipy-1.0.0-cp36-cp36m-manylinux1_x86_64.whl (50.0MB)\n",
      "\u001b[K    100% |████████████████████████████████| 50.0MB 9.1kB/s eta 0:00:01 0% |                                | 92kB 14.0MB/s eta 0:00:04    4% |█▍                              | 2.2MB 21.4MB/s eta 0:00:03    6% |██                              | 3.3MB 24.5MB/s eta 0:00:02    8% |██▉                             | 4.4MB 22.7MB/s eta 0:00:03    10% |███▌                            | 5.4MB 22.5MB/s eta 0:00:02    14% |████▉                           | 7.5MB 20.0MB/s eta 0:00:03    20% |██████▋                         | 10.4MB 23.0MB/s eta 0:00:02    26% |████████▋                       | 13.4MB 23.8MB/s eta 0:00:02    32% |██████████▌                     | 16.5MB 20.2MB/s eta 0:00:02    35% |███████████▏                    | 17.5MB 21.7MB/s eta 0:00:02    37% |████████████                    | 18.6MB 18.5MB/s eta 0:00:02    46% |███████████████                 | 23.4MB 22.0MB/s eta 0:00:02    48% |███████████████▋                | 24.5MB 18.8MB/s eta 0:00:02    54% |█████████████████▌              | 27.3MB 24.8MB/s eta 0:00:01    56% |██████████████████▏             | 28.4MB 21.5MB/s eta 0:00:02    60% |███████████████████▌            | 30.4MB 20.9MB/s eta 0:00:01    67% |█████████████████████▌          | 33.6MB 20.5MB/s eta 0:00:01    74% |███████████████████████▉        | 37.3MB 23.2MB/s eta 0:00:01    76% |████████████████████████▋       | 38.5MB 22.9MB/s eta 0:00:01    78% |█████████████████████████▎      | 39.5MB 19.8MB/s eta 0:00:01    80% |█████████████████████████▉      | 40.4MB 20.4MB/s eta 0:00:01    86% |███████████████████████████▊    | 43.4MB 21.3MB/s eta 0:00:01    88% |████████████████████████████▍   | 44.4MB 21.1MB/s eta 0:00:01    90% |█████████████████████████████   | 45.4MB 22.7MB/s eta 0:00:01    93% |█████████████████████████████▉  | 46.6MB 24.8MB/s eta 0:00:01    97% |███████████████████████████████▏| 48.7MB 23.7MB/s eta 0:00:01    99% |████████████████████████████████| 49.9MB 23.7MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: scikit-learn==0.19.1 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 13))\n",
      "Requirement already satisfied: six==1.11.0 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 14))\n",
      "Collecting tqdm==4.19.5 (from -r requirements.txt (line 15))\n",
      "  Downloading https://files.pythonhosted.org/packages/71/3c/341b4fa23cb3abc335207dba057c790f3bb329f6757e1fcd5d347bcf8308/tqdm-4.19.5-py2.py3-none-any.whl (51kB)\n",
      "\u001b[K    100% |████████████████████████████████| 61kB 3.8MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting zipline===1.2.0 (from -r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/15/d3/689f2a940478b82ac57c751a40460598221fd82b0449a7a8f7eef47a3bcc/zipline-1.2.0.tar.gz (659kB)\n",
      "\u001b[K    100% |████████████████████████████████| 665kB 687kB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: matplotlib>=1.4.0 in /opt/conda/lib/python3.6/site-packages (from alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: seaborn>=0.6.0 in /opt/conda/lib/python3.6/site-packages (from alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: statsmodels>=0.6.1 in /opt/conda/lib/python3.6/site-packages (from alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: IPython>=3.2.3 in /opt/conda/lib/python3.6/site-packages (from alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Collecting osqp (from cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "  Downloading https://files.pythonhosted.org/packages/c0/01/8becb29b0d38e0c40eab9e3d54aa8138fa62a010d519caf65e9210021bd3/osqp-0.5.0-cp36-cp36m-manylinux1_x86_64.whl (147kB)\n",
      "\u001b[K    100% |████████████████████████████████| 153kB 2.5MB/s eta 0:00:01  27% |████████▉                       | 40kB 7.4MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting ecos>=2 (from cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "  Downloading https://files.pythonhosted.org/packages/55/ed/d131ff51f3a8f73420eb1191345eb49f269f23cadef515172e356018cde3/ecos-2.0.7.post1-cp36-cp36m-manylinux1_x86_64.whl (147kB)\n",
      "\u001b[K    100% |████████████████████████████████| 153kB 2.4MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting scs>=1.1.3 (from cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "  Downloading https://files.pythonhosted.org/packages/b3/fd/6e01c4f4a69fcc6c3db130ba55572089e78e77ea8c0921a679f9da1ec04c/scs-2.0.2.tar.gz (133kB)\n",
      "\u001b[K    100% |████████████████████████████████| 143kB 2.7MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting multiprocess (from cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "  Downloading https://files.pythonhosted.org/packages/31/60/6d74caa02b54ca43092e745640c7d98f367f07160441682a01602ce00bc5/multiprocess-0.70.7.tar.gz (1.4MB)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[K    100% |████████████████████████████████| 1.4MB 338kB/s eta 0:00:01    42% |█████████████▌                  | 583kB 18.2MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: fastcache in /opt/conda/lib/python3.6/site-packages (from cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "Requirement already satisfied: toolz in /opt/conda/lib/python3.6/site-packages (from cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "Requirement already satisfied: decorator>=4.0.6 in /opt/conda/lib/python3.6/site-packages (from plotly==2.2.3->-r requirements.txt (line 7))\n",
      "Requirement already satisfied: nbformat>=4.2 in /opt/conda/lib/python3.6/site-packages (from plotly==2.2.3->-r requirements.txt (line 7))\n",
      "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 11))\n",
      "Requirement already satisfied: idna<2.7,>=2.5 in /opt/conda/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 11))\n",
      "Requirement already satisfied: urllib3<1.23,>=1.21.1 in /opt/conda/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 11))\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 11))\n",
      "Requirement already satisfied: pip>=7.1.0 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Requirement already satisfied: setuptools>18.0 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Collecting Logbook>=0.12.5 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/f6/83/20fc0270614919cb799f76e32cf143a54c58ce2fa45c19fd38ac2e4f9977/Logbook-1.4.3.tar.gz (85kB)\n",
      "\u001b[K    100% |████████████████████████████████| 92kB 3.4MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting requests-file>=1.4.1 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/23/9c/6e63c23c39e53d3df41c77a3d05a49a42c4e1383a6d2a5e3233161b89dbf/requests_file-1.4.3-py2.py3-none-any.whl\n",
      "Collecting pandas-datareader<0.6,>=0.2.1 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/40/c5/cc720f531bbde0efeab940de400d0fcc95e87770a3abcd7f90d6d52a3302/pandas_datareader-0.5.0-py2.py3-none-any.whl (74kB)\n",
      "\u001b[K    100% |████████████████████████████████| 81kB 3.0MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: patsy>=0.4.0 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Requirement already satisfied: Cython>=0.25.2 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Collecting cyordereddict>=0.2.2 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/d1/1a/364cbfd927be1b743c7f0a985a7f1f7e8a51469619f9fefe4ee9240ba210/cyordereddict-1.0.0.tar.gz (138kB)\n",
      "\u001b[K    100% |████████████████████████████████| 143kB 2.8MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting bottleneck>=1.0.0 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/05/ae/cedf5323f398ab4e4ff92d6c431a3e1c6a186f9b41ab3e8258dff786a290/Bottleneck-1.2.1.tar.gz (105kB)\n",
      "\u001b[K    100% |████████████████████████████████| 112kB 3.1MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting contextlib2>=0.4.0 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/a2/71/8273a7eeed0aff6a854237ab5453bc9aa67deb49df4832801c21f0ff3782/contextlib2-0.5.5-py2.py3-none-any.whl\n",
      "Requirement already satisfied: networkx<2.0,>=1.9.1 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Requirement already satisfied: numexpr>=2.6.1 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Collecting bcolz<1,>=0.12.1 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/6c/8b/1ffa01f872cac36173c5eb95b58c01040d8d25f1b242c48577f4104cd3ab/bcolz-0.12.1.tar.gz (622kB)\n",
      "\u001b[K    100% |████████████████████████████████| 624kB 720kB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: click>=4.0.0 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Collecting multipledispatch>=0.4.8 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/89/79/429ecef45fd5e4504f7474d4c3c3c4668c267be3370e4c2fd33e61506833/multipledispatch-0.6.0-py3-none-any.whl\n",
      "Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Requirement already satisfied: Mako>=1.0.1 in /opt/conda/lib/python3.6/site-packages/Mako-1.0.7-py3.6.egg (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Requirement already satisfied: sqlalchemy>=1.0.8 in /opt/conda/lib/python3.6/site-packages (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "Collecting alembic>=0.7.7 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/d6/bb/ec1e21f2e303689ad2170eb47fc67df9ad4199ade6759a99474c4d3535c8/alembic-1.0.8.tar.gz (1.0MB)\n",
      "\u001b[K    100% |████████████████████████████████| 1.0MB 436kB/s eta 0:00:01\n",
      "\u001b[?25hCollecting sortedcontainers>=1.4.4 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/13/f3/cf85f7c3a2dbd1a515d51e1f1676d971abe41bba6f4ab5443240d9a78e5b/sortedcontainers-2.1.0-py2.py3-none-any.whl\n",
      "Collecting intervaltree>=2.1.0 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/e8/f9/76237755b2020cd74549e98667210b2dd54d3fb17c6f4a62631e61d31225/intervaltree-3.0.2.tar.gz\n",
      "Collecting lru-dict>=1.1.4 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/00/a5/32ed6e10246cd341ca8cc205acea5d208e4053f48a4dced2b1b31d45ba3f/lru-dict-1.1.6.tar.gz\n",
      "Collecting empyrical>=0.4.2 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/7b/55/a01b05162b764830dbbac868462f44cd847a5b6523a01ca9f955721819da/empyrical-0.5.0.tar.gz (49kB)\n",
      "\u001b[K    100% |████████████████████████████████| 51kB 2.8MB/s ta 0:00:01\n",
      "\u001b[?25hCollecting tables>=3.3.0 (from zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/d7/1b/21f4c7f296b718575c17ef25e61c05742a283c45077b4c8d5a190b3e0b59/tables-3.4.4-cp36-cp36m-manylinux1_x86_64.whl (3.8MB)\n",
      "\u001b[K    100% |████████████████████████████████| 3.8MB 122kB/s ta 0:00:011    14% |████▊                           | 563kB 18.9MB/s eta 0:00:01    69% |██████████████████████▍         | 2.6MB 23.7MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: simplegeneric>0.8 in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: backcall in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.15 in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: jedi>=0.10 in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: traitlets>=4.2 in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: pygments in /opt/conda/lib/python3.6/site-packages (from IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: future in /opt/conda/lib/python3.6/site-packages (from osqp->cvxpy==1.0.3->-r requirements.txt (line 3))\n",
      "Collecting dill>=0.2.9 (from multiprocess->cvxpy==1.0.3->-r requirements.txt (line 3))\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Downloading https://files.pythonhosted.org/packages/fe/42/bfe2e0857bc284cbe6a011d93f2a9ad58a22cb894461b199ae72cfef0f29/dill-0.2.9.tar.gz (150kB)\n",
      "\u001b[K    100% |████████████████████████████████| 153kB 2.5MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: jupyter-core in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly==2.2.3->-r requirements.txt (line 7))\n",
      "Requirement already satisfied: ipython-genutils in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly==2.2.3->-r requirements.txt (line 7))\n",
      "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly==2.2.3->-r requirements.txt (line 7))\n",
      "Collecting requests-ftp (from pandas-datareader<0.6,>=0.2.1->zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/3d/ca/14b2ad1e93b5195eeaf56b86b7ecfd5ea2d5754a68d17aeb1e5b9f95b3cf/requests-ftp-0.3.1.tar.gz\n",
      "Collecting python-editor>=0.3 (from alembic>=0.7.7->zipline===1.2.0->-r requirements.txt (line 16))\n",
      "  Downloading https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl\n",
      "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.6/site-packages (from prompt-toolkit<2.0.0,>=1.0.15->IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.6/site-packages (from pexpect; sys_platform != \"win32\"->IPython>=3.2.3->alphalens==0.3.2->-r requirements.txt (line 1))\n",
      "Building wheels for collected packages: alphalens, cvxpy, pandas, plotly, zipline, scs, multiprocess, Logbook, cyordereddict, bottleneck, bcolz, alembic, intervaltree, lru-dict, empyrical, dill, requests-ftp\n",
      "  Running setup.py bdist_wheel for alphalens ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/77/1e/9a/223b4c94d7f564f25d94b48ca5b9c53e3034016ece3fd8c8c1\n",
      "  Running setup.py bdist_wheel for cvxpy ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/2b/60/0b/0c2596528665e21d698d6f84a3406c52044c7b4ca6ac737cf3\n",
      "  Running setup.py bdist_wheel for pandas ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/a3/08/c3/8fdd52954d4b415624cff43c6dd32a22bac90306976a98f4af\n",
      "  Running setup.py bdist_wheel for plotly ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/98/54/81/dd92d5b0858fac680cd7bdb8800eb26c001dd9f5dc8b1bc0ba\n",
      "  Running setup.py bdist_wheel for zipline ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/5d/20/7d/b48368c8634b1cb6cc7232833b2780a265d4217c0ad2e3d24c\n",
      "  Running setup.py bdist_wheel for scs ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/ff/f0/aa/530ccd478d7d9900b4e9ef5bc5a39e895ce110bed3d3ac653e\n",
      "  Running setup.py bdist_wheel for multiprocess ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/3a/ed/51/77c833462c3e757ce50c4b2b68bdf53f5d1745542fe567d740\n",
      "  Running setup.py bdist_wheel for Logbook ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/a2/9f/6f/8c7a4ed6b9f6f3c98b742dbb0fd41fff3c130119c507376301\n",
      "  Running setup.py bdist_wheel for cyordereddict ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/0b/9d/8b/5bf3e22c1edd59b50f11bb19dec9dfcfe5a479fc7ace02b61f\n",
      "  Running setup.py bdist_wheel for bottleneck ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/f2/bf/ec/e0f39aa27001525ad455139ee57ec7d0776fe074dfd78c97e4\n",
      "  Running setup.py bdist_wheel for bcolz ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/c5/cc/1b/2cf1f88959af5d7f4d449b7fc6c9452d0ecbd86fd61a9ee376\n",
      "  Running setup.py bdist_wheel for alembic ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/a0/bc/74/834fa0c75c4ae6d6718db5e65187d508623ee291dead032156\n",
      "  Running setup.py bdist_wheel for intervaltree ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/08/99/c0/5a5942f5b9567c59c14aac76f95a70bf11dccc71240b91ebf5\n",
      "  Running setup.py bdist_wheel for lru-dict ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/b7/ef/06/fbdd555907a7d438fb33e4c8675f771ff1cf41917284c51ebf\n",
      "  Running setup.py bdist_wheel for empyrical ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/83/14/73/34fb27552601518d28bd0813d75124be76d94ab29152c69112\n",
      "  Running setup.py bdist_wheel for dill ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/5b/d7/0f/e58eae695403de585269f4e4a94e0cd6ca60ec0c202936fa4a\n",
      "  Running setup.py bdist_wheel for requests-ftp ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /root/.cache/pip/wheels/2a/98/32/37195e45a3392a73d9f65c488cbea30fe5bad76aaef4d6b020\n",
      "Successfully built alphalens cvxpy pandas plotly zipline scs multiprocess Logbook cyordereddict bottleneck bcolz alembic intervaltree lru-dict empyrical dill requests-ftp\n",
      "Installing collected packages: numpy, pandas, scipy, alphalens, osqp, ecos, scs, dill, multiprocess, cvxpy, plotly, tqdm, Logbook, requests-file, requests-ftp, pandas-datareader, cyordereddict, bottleneck, contextlib2, bcolz, multipledispatch, python-editor, alembic, sortedcontainers, intervaltree, lru-dict, empyrical, tables, zipline\n",
      "  Found existing installation: numpy 1.12.1\n",
      "    Uninstalling numpy-1.12.1:\n",
      "      Successfully uninstalled numpy-1.12.1\n",
      "  Found existing installation: pandas 0.23.3\n",
      "    Uninstalling pandas-0.23.3:\n",
      "      Successfully uninstalled pandas-0.23.3\n",
      "  Found existing installation: scipy 0.19.1\n",
      "    Uninstalling scipy-0.19.1:\n",
      "      Successfully uninstalled scipy-0.19.1\n",
      "  Found existing installation: dill 0.2.7.1\n",
      "    Uninstalling dill-0.2.7.1:\n",
      "      Successfully uninstalled dill-0.2.7.1\n",
      "  Found existing installation: plotly 2.0.15\n",
      "    Uninstalling plotly-2.0.15:\n",
      "      Successfully uninstalled plotly-2.0.15\n",
      "  Found existing installation: tqdm 4.11.2\n",
      "    Uninstalling tqdm-4.11.2:\n",
      "      Successfully uninstalled tqdm-4.11.2\n",
      "Successfully installed Logbook-1.4.3 alembic-1.0.8 alphalens-0.3.2 bcolz-0.12.1 bottleneck-1.2.1 contextlib2-0.5.5 cvxpy-1.0.3 cyordereddict-1.0.0 dill-0.2.9 ecos-2.0.7.post1 empyrical-0.5.0 intervaltree-3.0.2 lru-dict-1.1.6 multipledispatch-0.6.0 multiprocess-0.70.7 numpy-1.13.3 osqp-0.5.0 pandas-0.18.1 pandas-datareader-0.5.0 plotly-2.2.3 python-editor-1.0.4 requests-file-1.4.3 requests-ftp-0.3.1 scipy-1.0.0 scs-2.0.2 sortedcontainers-2.1.0 tables-3.4.4 tqdm-4.19.5 zipline-1.2.0\n",
      "\u001b[33mYou are using pip version 9.0.1, however version 19.0.3 is available.\n",
      "You should consider upgrading via the 'pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "!{sys.executable} -m pip install -r requirements.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "module compiled against API version 0xc but this version of numpy is 0xb",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;31mRuntimeError\u001b[0m: module compiled against API version 0xc but this version of numpy is 0xb"
     ]
    },
    {
     "ename": "RuntimeError",
     "evalue": "module compiled against API version 0xc but this version of numpy is 0xb",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;31mRuntimeError\u001b[0m: module compiled against API version 0xc but this version of numpy is 0xb"
     ]
    },
    {
     "ename": "RuntimeError",
     "evalue": "module compiled against API version 0xc but this version of numpy is 0xb",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;31mRuntimeError\u001b[0m: module compiled against API version 0xc but this version of numpy is 0xb"
     ]
    }
   ],
   "source": [
    "import cvxpy as cvx\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import time\n",
    "import project_tests\n",
    "import project_helper\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.style.use('ggplot')\n",
    "plt.rcParams['figure.figsize'] = (14, 8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## Data Bundle\n",
    "We'll be using Zipline to handle our data. We've created a end of day data bundle for this project. Run the cell below to register this data bundle in zipline."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Data Registered\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import project_helper\n",
    "from zipline.data import bundles\n",
    "\n",
    "os.environ['ZIPLINE_ROOT'] = os.path.join(os.getcwd(), '..', '..', 'data', 'project_4_eod')\n",
    "\n",
    "ingest_func = bundles.csvdir.csvdir_equities(['daily'], project_helper.EOD_BUNDLE_NAME)\n",
    "bundles.register(project_helper.EOD_BUNDLE_NAME, ingest_func)\n",
    "\n",
    "print('Data Registered')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build Pipeline Engine\n",
    "We'll be using Zipline's pipeline package to access our data for this project. To use it, we must build a pipeline engine. Run the cell below to build the engine."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from zipline.pipeline import Pipeline\n",
    "from zipline.pipeline.factors import AverageDollarVolume\n",
    "from zipline.utils.calendars import get_calendar\n",
    "\n",
    "\n",
    "universe = AverageDollarVolume(window_length=120).top(500) \n",
    "trading_calendar = get_calendar('NYSE') \n",
    "bundle_data = bundles.load(project_helper.EOD_BUNDLE_NAME)\n",
    "engine = project_helper.build_pipeline_engine(bundle_data, trading_calendar)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "With the pipeline engine built, let's get the stocks at the end of the period in the universe we're using. We'll use these tickers to generate the returns data for the our risk model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Equity(0 [A]),\n",
       " Equity(1 [AAL]),\n",
       " Equity(2 [AAP]),\n",
       " Equity(3 [AAPL]),\n",
       " Equity(4 [ABBV]),\n",
       " Equity(5 [ABC]),\n",
       " Equity(6 [ABT]),\n",
       " Equity(7 [ACN]),\n",
       " Equity(8 [ADBE]),\n",
       " Equity(9 [ADI]),\n",
       " Equity(10 [ADM]),\n",
       " Equity(11 [ADP]),\n",
       " Equity(12 [ADS]),\n",
       " Equity(13 [ADSK]),\n",
       " Equity(14 [AEE]),\n",
       " Equity(15 [AEP]),\n",
       " Equity(16 [AES]),\n",
       " Equity(17 [AET]),\n",
       " Equity(18 [AFL]),\n",
       " Equity(19 [AGN]),\n",
       " Equity(20 [AIG]),\n",
       " Equity(21 [AIV]),\n",
       " Equity(22 [AIZ]),\n",
       " Equity(23 [AJG]),\n",
       " Equity(24 [AKAM]),\n",
       " Equity(25 [ALB]),\n",
       " Equity(26 [ALGN]),\n",
       " Equity(27 [ALK]),\n",
       " Equity(28 [ALL]),\n",
       " Equity(29 [ALLE]),\n",
       " Equity(30 [ALXN]),\n",
       " Equity(31 [AMAT]),\n",
       " Equity(32 [AMD]),\n",
       " Equity(33 [AME]),\n",
       " Equity(34 [AMG]),\n",
       " Equity(35 [AMGN]),\n",
       " Equity(36 [AMP]),\n",
       " Equity(37 [AMT]),\n",
       " Equity(38 [AMZN]),\n",
       " Equity(39 [ANDV]),\n",
       " Equity(40 [ANSS]),\n",
       " Equity(41 [ANTM]),\n",
       " Equity(42 [AON]),\n",
       " Equity(43 [AOS]),\n",
       " Equity(44 [APA]),\n",
       " Equity(45 [APC]),\n",
       " Equity(46 [APD]),\n",
       " Equity(47 [APH]),\n",
       " Equity(48 [ARE]),\n",
       " Equity(49 [ARNC]),\n",
       " Equity(50 [ATVI]),\n",
       " Equity(51 [AVB]),\n",
       " Equity(52 [AVGO]),\n",
       " Equity(53 [AVY]),\n",
       " Equity(54 [AWK]),\n",
       " Equity(55 [AXP]),\n",
       " Equity(56 [AYI]),\n",
       " Equity(57 [AZO]),\n",
       " Equity(58 [BA]),\n",
       " Equity(59 [BAC]),\n",
       " Equity(60 [BAX]),\n",
       " Equity(61 [BBT]),\n",
       " Equity(62 [BBY]),\n",
       " Equity(63 [BCR]),\n",
       " Equity(64 [BDX]),\n",
       " Equity(65 [BEN]),\n",
       " Equity(66 [BIIB]),\n",
       " Equity(67 [BK]),\n",
       " Equity(68 [BLK]),\n",
       " Equity(69 [BLL]),\n",
       " Equity(70 [BMY]),\n",
       " Equity(71 [BSX]),\n",
       " Equity(72 [BWA]),\n",
       " Equity(73 [BXP]),\n",
       " Equity(74 [C]),\n",
       " Equity(75 [CA]),\n",
       " Equity(76 [CAG]),\n",
       " Equity(77 [CAH]),\n",
       " Equity(78 [CAT]),\n",
       " Equity(79 [CB]),\n",
       " Equity(80 [CBG]),\n",
       " Equity(81 [CBOE]),\n",
       " Equity(82 [CBS]),\n",
       " Equity(83 [CCI]),\n",
       " Equity(84 [CCL]),\n",
       " Equity(85 [CELG]),\n",
       " Equity(86 [CERN]),\n",
       " Equity(87 [CF]),\n",
       " Equity(88 [CFG]),\n",
       " Equity(89 [CHD]),\n",
       " Equity(90 [CHK]),\n",
       " Equity(91 [CHRW]),\n",
       " Equity(92 [CHTR]),\n",
       " Equity(93 [CI]),\n",
       " Equity(94 [CINF]),\n",
       " Equity(95 [CL]),\n",
       " Equity(96 [CLX]),\n",
       " Equity(97 [CMA]),\n",
       " Equity(98 [CMCSA]),\n",
       " Equity(99 [CME]),\n",
       " Equity(100 [CMG]),\n",
       " Equity(101 [CMI]),\n",
       " Equity(102 [CMS]),\n",
       " Equity(103 [CNC]),\n",
       " Equity(104 [CNP]),\n",
       " Equity(105 [COF]),\n",
       " Equity(106 [COG]),\n",
       " Equity(107 [COL]),\n",
       " Equity(108 [COO]),\n",
       " Equity(109 [COP]),\n",
       " Equity(110 [COST]),\n",
       " Equity(111 [COTY]),\n",
       " Equity(112 [CPB]),\n",
       " Equity(113 [CRM]),\n",
       " Equity(114 [CSCO]),\n",
       " Equity(115 [CSRA]),\n",
       " Equity(116 [CSX]),\n",
       " Equity(117 [CTAS]),\n",
       " Equity(118 [CTL]),\n",
       " Equity(119 [CTSH]),\n",
       " Equity(120 [CTXS]),\n",
       " Equity(121 [CVS]),\n",
       " Equity(122 [CVX]),\n",
       " Equity(123 [CXO]),\n",
       " Equity(124 [D]),\n",
       " Equity(125 [DAL]),\n",
       " Equity(126 [DE]),\n",
       " Equity(127 [DFS]),\n",
       " Equity(128 [DG]),\n",
       " Equity(129 [DGX]),\n",
       " Equity(130 [DHI]),\n",
       " Equity(131 [DHR]),\n",
       " Equity(132 [DIS]),\n",
       " Equity(133 [DISCA]),\n",
       " Equity(134 [DISCK]),\n",
       " Equity(135 [DISH]),\n",
       " Equity(136 [DLR]),\n",
       " Equity(137 [DLTR]),\n",
       " Equity(138 [DOV]),\n",
       " Equity(139 [DPS]),\n",
       " Equity(140 [DRE]),\n",
       " Equity(141 [DRI]),\n",
       " Equity(142 [DTE]),\n",
       " Equity(143 [DUK]),\n",
       " Equity(144 [DVA]),\n",
       " Equity(145 [DVN]),\n",
       " Equity(146 [EA]),\n",
       " Equity(147 [EBAY]),\n",
       " Equity(148 [ECL]),\n",
       " Equity(149 [ED]),\n",
       " Equity(150 [EFX]),\n",
       " Equity(151 [EIX]),\n",
       " Equity(152 [EL]),\n",
       " Equity(153 [EMN]),\n",
       " Equity(154 [EMR]),\n",
       " Equity(155 [EOG]),\n",
       " Equity(156 [EQIX]),\n",
       " Equity(157 [EQR]),\n",
       " Equity(158 [EQT]),\n",
       " Equity(159 [ES]),\n",
       " Equity(160 [ESRX]),\n",
       " Equity(161 [ESS]),\n",
       " Equity(162 [ETFC]),\n",
       " Equity(163 [ETN]),\n",
       " Equity(164 [ETR]),\n",
       " Equity(165 [EVHC]),\n",
       " Equity(166 [EW]),\n",
       " Equity(167 [EXC]),\n",
       " Equity(168 [EXPD]),\n",
       " Equity(169 [EXPE]),\n",
       " Equity(170 [EXR]),\n",
       " Equity(171 [F]),\n",
       " Equity(172 [FAST]),\n",
       " Equity(173 [FB]),\n",
       " Equity(174 [FBHS]),\n",
       " Equity(175 [FCX]),\n",
       " Equity(176 [FDX]),\n",
       " Equity(177 [FE]),\n",
       " Equity(178 [FFIV]),\n",
       " Equity(179 [FIS]),\n",
       " Equity(180 [FISV]),\n",
       " Equity(181 [FITB]),\n",
       " Equity(182 [FL]),\n",
       " Equity(183 [FLIR]),\n",
       " Equity(184 [FLR]),\n",
       " Equity(185 [FLS]),\n",
       " Equity(186 [FMC]),\n",
       " Equity(187 [FOX]),\n",
       " Equity(188 [FOXA]),\n",
       " Equity(189 [FRT]),\n",
       " Equity(190 [FTI]),\n",
       " Equity(191 [GD]),\n",
       " Equity(192 [GE]),\n",
       " Equity(193 [GGP]),\n",
       " Equity(194 [GILD]),\n",
       " Equity(195 [GIS]),\n",
       " Equity(196 [GLW]),\n",
       " Equity(197 [GM]),\n",
       " Equity(198 [GOOG]),\n",
       " Equity(199 [GOOGL]),\n",
       " Equity(200 [GPC]),\n",
       " Equity(201 [GPN]),\n",
       " Equity(202 [GPS]),\n",
       " Equity(203 [GRMN]),\n",
       " Equity(204 [GS]),\n",
       " Equity(205 [GT]),\n",
       " Equity(206 [GWW]),\n",
       " Equity(207 [HAL]),\n",
       " Equity(208 [HAS]),\n",
       " Equity(209 [HBAN]),\n",
       " Equity(210 [HBI]),\n",
       " Equity(211 [HCA]),\n",
       " Equity(212 [HCN]),\n",
       " Equity(213 [HCP]),\n",
       " Equity(214 [HD]),\n",
       " Equity(215 [HES]),\n",
       " Equity(216 [HIG]),\n",
       " Equity(217 [HLT]),\n",
       " Equity(218 [HOG]),\n",
       " Equity(219 [HOLX]),\n",
       " Equity(220 [HON]),\n",
       " Equity(221 [HP]),\n",
       " Equity(222 [HPE]),\n",
       " Equity(223 [HPQ]),\n",
       " Equity(224 [HRB]),\n",
       " Equity(225 [HRL]),\n",
       " Equity(226 [HRS]),\n",
       " Equity(227 [HSIC]),\n",
       " Equity(228 [HST]),\n",
       " Equity(229 [HSY]),\n",
       " Equity(230 [HUM]),\n",
       " Equity(231 [IBM]),\n",
       " Equity(232 [ICE]),\n",
       " Equity(233 [IDXX]),\n",
       " Equity(234 [IFF]),\n",
       " Equity(235 [ILMN]),\n",
       " Equity(236 [INCY]),\n",
       " Equity(237 [INFO]),\n",
       " Equity(238 [INTC]),\n",
       " Equity(239 [INTU]),\n",
       " Equity(240 [IP]),\n",
       " Equity(241 [IPG]),\n",
       " Equity(242 [IR]),\n",
       " Equity(243 [IRM]),\n",
       " Equity(244 [ISRG]),\n",
       " Equity(245 [IT]),\n",
       " Equity(246 [ITW]),\n",
       " Equity(247 [IVZ]),\n",
       " Equity(248 [JBHT]),\n",
       " Equity(249 [JCI]),\n",
       " Equity(250 [JEC]),\n",
       " Equity(251 [JNJ]),\n",
       " Equity(252 [JNPR]),\n",
       " Equity(253 [JPM]),\n",
       " Equity(254 [JWN]),\n",
       " Equity(255 [K]),\n",
       " Equity(256 [KEY]),\n",
       " Equity(257 [KHC]),\n",
       " Equity(258 [KIM]),\n",
       " Equity(259 [KLAC]),\n",
       " Equity(260 [KMB]),\n",
       " Equity(261 [KMI]),\n",
       " Equity(262 [KMX]),\n",
       " Equity(263 [KO]),\n",
       " Equity(264 [KORS]),\n",
       " Equity(265 [KR]),\n",
       " Equity(266 [KSS]),\n",
       " Equity(267 [KSU]),\n",
       " Equity(268 [L]),\n",
       " Equity(269 [LB]),\n",
       " Equity(270 [LEG]),\n",
       " Equity(271 [LEN]),\n",
       " Equity(272 [LH]),\n",
       " Equity(273 [LKQ]),\n",
       " Equity(274 [LLL]),\n",
       " Equity(275 [LLY]),\n",
       " Equity(276 [LMT]),\n",
       " Equity(277 [LNC]),\n",
       " Equity(278 [LNT]),\n",
       " Equity(279 [LOW]),\n",
       " Equity(280 [LRCX]),\n",
       " Equity(281 [LUK]),\n",
       " Equity(282 [LUV]),\n",
       " Equity(283 [LVLT]),\n",
       " Equity(284 [LYB]),\n",
       " Equity(285 [M]),\n",
       " Equity(286 [MA]),\n",
       " Equity(287 [MAA]),\n",
       " Equity(288 [MAC]),\n",
       " Equity(289 [MAR]),\n",
       " Equity(290 [MAS]),\n",
       " Equity(291 [MAT]),\n",
       " Equity(292 [MCD]),\n",
       " Equity(293 [MCHP]),\n",
       " Equity(294 [MCK]),\n",
       " Equity(295 [MCO]),\n",
       " Equity(296 [MDLZ]),\n",
       " Equity(297 [MDT]),\n",
       " Equity(298 [MET]),\n",
       " Equity(299 [MGM]),\n",
       " Equity(300 [MHK]),\n",
       " Equity(301 [MKC]),\n",
       " Equity(302 [MLM]),\n",
       " Equity(303 [MMC]),\n",
       " Equity(304 [MNST]),\n",
       " Equity(305 [MO]),\n",
       " Equity(306 [MON]),\n",
       " Equity(307 [MOS]),\n",
       " Equity(308 [MPC]),\n",
       " Equity(309 [MRK]),\n",
       " Equity(310 [MRO]),\n",
       " Equity(311 [MS]),\n",
       " Equity(312 [MSFT]),\n",
       " Equity(313 [MSI]),\n",
       " Equity(314 [MTB]),\n",
       " Equity(315 [MTD]),\n",
       " Equity(316 [MU]),\n",
       " Equity(317 [MYL]),\n",
       " Equity(318 [NAVI]),\n",
       " Equity(319 [NBL]),\n",
       " Equity(320 [NDAQ]),\n",
       " Equity(321 [NEE]),\n",
       " Equity(322 [NEM]),\n",
       " Equity(323 [NFLX]),\n",
       " Equity(324 [NFX]),\n",
       " Equity(325 [NI]),\n",
       " Equity(326 [NKE]),\n",
       " Equity(327 [NLSN]),\n",
       " Equity(328 [NOC]),\n",
       " Equity(329 [NOV]),\n",
       " Equity(330 [NRG]),\n",
       " Equity(331 [NSC]),\n",
       " Equity(332 [NTAP]),\n",
       " Equity(333 [NTRS]),\n",
       " Equity(334 [NUE]),\n",
       " Equity(335 [NVDA]),\n",
       " Equity(336 [NWL]),\n",
       " Equity(337 [NWS]),\n",
       " Equity(338 [NWSA]),\n",
       " Equity(339 [O]),\n",
       " Equity(340 [OKE]),\n",
       " Equity(341 [OMC]),\n",
       " Equity(342 [ORCL]),\n",
       " Equity(343 [ORLY]),\n",
       " Equity(344 [OXY]),\n",
       " Equity(345 [PAYX]),\n",
       " Equity(346 [PBCT]),\n",
       " Equity(347 [PCAR]),\n",
       " Equity(348 [PCG]),\n",
       " Equity(349 [PDCO]),\n",
       " Equity(350 [PEG]),\n",
       " Equity(351 [PEP]),\n",
       " Equity(352 [PFE]),\n",
       " Equity(353 [PFG]),\n",
       " Equity(354 [PG]),\n",
       " Equity(355 [PGR]),\n",
       " Equity(356 [PH]),\n",
       " Equity(357 [PHM]),\n",
       " Equity(358 [PKG]),\n",
       " Equity(359 [PKI]),\n",
       " Equity(360 [PLD]),\n",
       " Equity(361 [PM]),\n",
       " Equity(362 [PNC]),\n",
       " Equity(363 [PNR]),\n",
       " Equity(364 [PNW]),\n",
       " Equity(365 [PPG]),\n",
       " Equity(366 [PPL]),\n",
       " Equity(367 [PRGO]),\n",
       " Equity(368 [PRU]),\n",
       " Equity(369 [PSA]),\n",
       " Equity(370 [PSX]),\n",
       " Equity(371 [PVH]),\n",
       " Equity(372 [PWR]),\n",
       " Equity(373 [PX]),\n",
       " Equity(374 [PXD]),\n",
       " Equity(375 [PYPL]),\n",
       " Equity(376 [QCOM]),\n",
       " Equity(377 [QRVO]),\n",
       " Equity(378 [RCL]),\n",
       " Equity(379 [RE]),\n",
       " Equity(380 [REG]),\n",
       " Equity(381 [REGN]),\n",
       " Equity(382 [RF]),\n",
       " Equity(383 [RHI]),\n",
       " Equity(384 [RHT]),\n",
       " Equity(385 [RJF]),\n",
       " Equity(386 [RL]),\n",
       " Equity(387 [RMD]),\n",
       " Equity(388 [ROK]),\n",
       " Equity(389 [ROP]),\n",
       " Equity(390 [ROST]),\n",
       " Equity(391 [RRC]),\n",
       " Equity(392 [RSG]),\n",
       " Equity(393 [RTN]),\n",
       " Equity(394 [SBAC]),\n",
       " Equity(395 [SBUX]),\n",
       " Equity(396 [SCG]),\n",
       " Equity(397 [SCHW]),\n",
       " Equity(398 [SEE]),\n",
       " Equity(399 [SHW]),\n",
       " Equity(400 [SIG]),\n",
       " Equity(401 [SJM]),\n",
       " Equity(402 [SLB]),\n",
       " Equity(403 [SLG]),\n",
       " Equity(404 [SNA]),\n",
       " Equity(405 [SNI]),\n",
       " Equity(406 [SNPS]),\n",
       " Equity(407 [SO]),\n",
       " Equity(408 [SPG]),\n",
       " Equity(409 [SPLS]),\n",
       " Equity(410 [SRCL]),\n",
       " Equity(411 [SRE]),\n",
       " Equity(412 [STI]),\n",
       " Equity(413 [STT]),\n",
       " Equity(414 [STX]),\n",
       " Equity(415 [STZ]),\n",
       " Equity(416 [SWK]),\n",
       " Equity(417 [SWKS]),\n",
       " Equity(418 [SYF]),\n",
       " Equity(419 [SYK]),\n",
       " Equity(420 [SYMC]),\n",
       " Equity(421 [SYY]),\n",
       " Equity(422 [T]),\n",
       " Equity(423 [TAP]),\n",
       " Equity(424 [TDG]),\n",
       " Equity(425 [TEL]),\n",
       " Equity(426 [TGT]),\n",
       " Equity(427 [TIF]),\n",
       " Equity(428 [TJX]),\n",
       " Equity(429 [TMK]),\n",
       " Equity(430 [TMO]),\n",
       " Equity(431 [TRIP]),\n",
       " Equity(432 [TROW]),\n",
       " Equity(433 [TRV]),\n",
       " Equity(434 [TSCO]),\n",
       " Equity(435 [TSN]),\n",
       " Equity(436 [TSS]),\n",
       " Equity(437 [TWX]),\n",
       " Equity(438 [TXN]),\n",
       " Equity(439 [TXT]),\n",
       " Equity(440 [UAA]),\n",
       " Equity(441 [UAL]),\n",
       " Equity(442 [UDR]),\n",
       " Equity(443 [UHS]),\n",
       " Equity(444 [ULTA]),\n",
       " Equity(445 [UNH]),\n",
       " Equity(446 [UNM]),\n",
       " Equity(447 [UNP]),\n",
       " Equity(448 [UPS]),\n",
       " Equity(449 [URI]),\n",
       " Equity(450 [USB]),\n",
       " Equity(451 [UTX]),\n",
       " Equity(452 [V]),\n",
       " Equity(453 [VAR]),\n",
       " Equity(454 [VFC]),\n",
       " Equity(455 [VIAB]),\n",
       " Equity(456 [VLO]),\n",
       " Equity(457 [VMC]),\n",
       " Equity(458 [VNO]),\n",
       " Equity(459 [VRSK]),\n",
       " Equity(460 [VRSN]),\n",
       " Equity(461 [VRTX]),\n",
       " Equity(462 [VTR]),\n",
       " Equity(463 [VZ]),\n",
       " Equity(464 [WAT]),\n",
       " Equity(465 [WBA]),\n",
       " Equity(466 [WDC]),\n",
       " Equity(467 [WEC]),\n",
       " Equity(468 [WFC]),\n",
       " Equity(469 [WHR]),\n",
       " Equity(471 [WM]),\n",
       " Equity(472 [WMB]),\n",
       " Equity(473 [WMT]),\n",
       " Equity(474 [WRK]),\n",
       " Equity(475 [WU]),\n",
       " Equity(476 [WY]),\n",
       " Equity(477 [WYN]),\n",
       " Equity(478 [WYNN]),\n",
       " Equity(479 [XEC]),\n",
       " Equity(480 [XEL]),\n",
       " Equity(481 [XL]),\n",
       " Equity(482 [XLNX]),\n",
       " Equity(483 [XOM]),\n",
       " Equity(484 [XRAY]),\n",
       " Equity(485 [XRX]),\n",
       " Equity(486 [XYL]),\n",
       " Equity(487 [YUM]),\n",
       " Equity(488 [ZBH]),\n",
       " Equity(489 [ZION]),\n",
       " Equity(490 [ZTS])]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "universe_end_date = pd.Timestamp('2016-01-05', tz='UTC')\n",
    "\n",
    "universe_tickers = engine\\\n",
    "    .run_pipeline(\n",
    "        Pipeline(screen=universe),\n",
    "        universe_end_date,\n",
    "        universe_end_date)\\\n",
    "    .index.get_level_values(1)\\\n",
    "    .values.tolist()\n",
    "    \n",
    "universe_tickers"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get Returns\n",
    "Not that we have our pipeline built, let's access the returns data. We'll start by building a data portal."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from zipline.data.data_portal import DataPortal\n",
    "\n",
    "\n",
    "data_portal = DataPortal(\n",
    "    bundle_data.asset_finder,\n",
    "    trading_calendar=trading_calendar,\n",
    "    first_trading_day=bundle_data.equity_daily_bar_reader.first_trading_day,\n",
    "    equity_minute_reader=None,\n",
    "    equity_daily_reader=bundle_data.equity_daily_bar_reader,\n",
    "    adjustment_reader=bundle_data.adjustment_reader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To make the code easier to read, we've built the helper function `get_pricing` to get the pricing from the data portal. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_pricing(data_portal, trading_calendar, assets, start_date, end_date, field='close'):\n",
    "    end_dt = pd.Timestamp(end_date.strftime('%Y-%m-%d'), tz='UTC', offset='C')\n",
    "    start_dt = pd.Timestamp(start_date.strftime('%Y-%m-%d'), tz='UTC', offset='C')\n",
    "\n",
    "    end_loc = trading_calendar.closes.index.get_loc(end_dt)\n",
    "    start_loc = trading_calendar.closes.index.get_loc(start_dt)\n",
    "\n",
    "    return data_portal.get_history_window(\n",
    "        assets=assets,\n",
    "        end_dt=end_dt,\n",
    "        bar_count=end_loc - start_loc,\n",
    "        frequency='1d',\n",
    "        field=field,\n",
    "        data_frequency='daily')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's get returns data for our risk model using the `get_pricing` function. For this model, we'll be looking back to 5 years of data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <th>...</th>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2011-01-07 00:00:00+00:00</th>\n",
       "      <td>0.00843652</td>\n",
       "      <td>0.01423027</td>\n",
       "      <td>0.02670202</td>\n",
       "      <td>0.00714639</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00199434</td>\n",
       "      <td>0.00416541</td>\n",
       "      <td>0.00164769</td>\n",
       "      <td>-0.00712736</td>\n",
       "      <td>-0.00581846</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00183775</td>\n",
       "      <td>-0.00561865</td>\n",
       "      <td>0.00546091</td>\n",
       "      <td>-0.00404361</td>\n",
       "      <td>-0.01395259</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01245693</td>\n",
       "      <td>-0.00018145</td>\n",
       "      <td>-0.01045802</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-10 00:00:00+00:00</th>\n",
       "      <td>-0.00417428</td>\n",
       "      <td>0.00619534</td>\n",
       "      <td>0.00743543</td>\n",
       "      <td>0.01885158</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00571429</td>\n",
       "      <td>-0.00889600</td>\n",
       "      <td>-0.00885384</td>\n",
       "      <td>0.02871411</td>\n",
       "      <td>0.00292626</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00094687</td>\n",
       "      <td>0.00781438</td>\n",
       "      <td>-0.00608100</td>\n",
       "      <td>0.01046585</td>\n",
       "      <td>0.00973303</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00143979</td>\n",
       "      <td>0.00778351</td>\n",
       "      <td>-0.01794496</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-11 00:00:00+00:00</th>\n",
       "      <td>-0.00188630</td>\n",
       "      <td>-0.04364361</td>\n",
       "      <td>-0.00592730</td>\n",
       "      <td>-0.00236744</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00978303</td>\n",
       "      <td>-0.00206747</td>\n",
       "      <td>0.01371668</td>\n",
       "      <td>0.00060680</td>\n",
       "      <td>0.00875316</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00131385</td>\n",
       "      <td>0.01017933</td>\n",
       "      <td>0.00744242</td>\n",
       "      <td>0.00735141</td>\n",
       "      <td>0.00611644</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00646974</td>\n",
       "      <td>0.03567570</td>\n",
       "      <td>0.00746728</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-12 00:00:00+00:00</th>\n",
       "      <td>0.01725375</td>\n",
       "      <td>-0.00823708</td>\n",
       "      <td>0.01338721</td>\n",
       "      <td>0.00813289</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00597922</td>\n",
       "      <td>-0.00101061</td>\n",
       "      <td>0.02296913</td>\n",
       "      <td>0.01795027</td>\n",
       "      <td>0.00025710</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00498609</td>\n",
       "      <td>0.01566621</td>\n",
       "      <td>0.01176334</td>\n",
       "      <td>0.02718194</td>\n",
       "      <td>0.00438630</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00263106</td>\n",
       "      <td>0.01474083</td>\n",
       "      <td>-0.01190269</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-13 00:00:00+00:00</th>\n",
       "      <td>-0.00455851</td>\n",
       "      <td>0.00095465</td>\n",
       "      <td>0.00303109</td>\n",
       "      <td>0.00365656</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01492537</td>\n",
       "      <td>-0.00445119</td>\n",
       "      <td>-0.00040011</td>\n",
       "      <td>-0.00571905</td>\n",
       "      <td>-0.00501221</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03049927</td>\n",
       "      <td>-0.00321668</td>\n",
       "      <td>0.00169383</td>\n",
       "      <td>0.00054651</td>\n",
       "      <td>-0.01823475</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00508430</td>\n",
       "      <td>-0.00466453</td>\n",
       "      <td>-0.00917796</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-14 00:00:00+00:00</th>\n",
       "      <td>0.00343886</td>\n",
       "      <td>-0.00915594</td>\n",
       "      <td>0.00302193</td>\n",
       "      <td>0.00810620</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00139452</td>\n",
       "      <td>-0.01011076</td>\n",
       "      <td>0.00259000</td>\n",
       "      <td>0.01228280</td>\n",
       "      <td>0.01982692</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02660653</td>\n",
       "      <td>0.02589425</td>\n",
       "      <td>0.01474258</td>\n",
       "      <td>-0.00028748</td>\n",
       "      <td>0.02649446</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.02166101</td>\n",
       "      <td>0.00594885</td>\n",
       "      <td>0.03317747</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-18 00:00:00+00:00</th>\n",
       "      <td>0.03425353</td>\n",
       "      <td>-0.06208490</td>\n",
       "      <td>-0.00428562</td>\n",
       "      <td>-0.02247419</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02088872</td>\n",
       "      <td>0.00662116</td>\n",
       "      <td>0.00699843</td>\n",
       "      <td>0.01154188</td>\n",
       "      <td>0.03264518</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00167843</td>\n",
       "      <td>0.00250133</td>\n",
       "      <td>0.01116324</td>\n",
       "      <td>0.01158879</td>\n",
       "      <td>0.00604402</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02945339</td>\n",
       "      <td>0.00699753</td>\n",
       "      <td>-0.00853448</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-19 00:00:00+00:00</th>\n",
       "      <td>-0.01022379</td>\n",
       "      <td>-0.00892857</td>\n",
       "      <td>0.00875376</td>\n",
       "      <td>-0.00531448</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.01714410</td>\n",
       "      <td>0.00275342</td>\n",
       "      <td>-0.00296182</td>\n",
       "      <td>-0.00789936</td>\n",
       "      <td>-0.02057462</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01483416</td>\n",
       "      <td>-0.02358990</td>\n",
       "      <td>-0.00596800</td>\n",
       "      <td>-0.01989880</td>\n",
       "      <td>-0.01284667</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00081838</td>\n",
       "      <td>-0.00409759</td>\n",
       "      <td>-0.01843318</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-20 00:00:00+00:00</th>\n",
       "      <td>-0.00849568</td>\n",
       "      <td>0.02195299</td>\n",
       "      <td>-0.00473189</td>\n",
       "      <td>-0.01818900</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00479450</td>\n",
       "      <td>0.01332249</td>\n",
       "      <td>0.01871257</td>\n",
       "      <td>-0.01238573</td>\n",
       "      <td>-0.00281761</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.02451226</td>\n",
       "      <td>0.00774353</td>\n",
       "      <td>-0.00626137</td>\n",
       "      <td>-0.00084112</td>\n",
       "      <td>-0.03379775</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.01318157</td>\n",
       "      <td>-0.00161165</td>\n",
       "      <td>-0.00797236</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-21 00:00:00+00:00</th>\n",
       "      <td>0.00787281</td>\n",
       "      <td>-0.04103759</td>\n",
       "      <td>0.00554409</td>\n",
       "      <td>-0.01791080</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01064197</td>\n",
       "      <td>-0.00085307</td>\n",
       "      <td>-0.00195169</td>\n",
       "      <td>-0.00656913</td>\n",
       "      <td>-0.00411277</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00061472</td>\n",
       "      <td>0.01582494</td>\n",
       "      <td>-0.00304798</td>\n",
       "      <td>-0.00087153</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00759032</td>\n",
       "      <td>0.00932467</td>\n",
       "      <td>0.02402000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-24 00:00:00+00:00</th>\n",
       "      <td>0.01464622</td>\n",
       "      <td>0.02747253</td>\n",
       "      <td>-0.00110591</td>\n",
       "      <td>0.03283704</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00524943</td>\n",
       "      <td>0.00522324</td>\n",
       "      <td>0.00842018</td>\n",
       "      <td>0.02284340</td>\n",
       "      <td>0.01497431</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01235897</td>\n",
       "      <td>0.01601137</td>\n",
       "      <td>-0.00494300</td>\n",
       "      <td>0.00165968</td>\n",
       "      <td>0.00804885</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00060118</td>\n",
       "      <td>-0.01650140</td>\n",
       "      <td>-0.02302058</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-25 00:00:00+00:00</th>\n",
       "      <td>-0.00673624</td>\n",
       "      <td>0.00298231</td>\n",
       "      <td>0.00914590</td>\n",
       "      <td>0.01170955</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00936254</td>\n",
       "      <td>-0.00434674</td>\n",
       "      <td>0.00485935</td>\n",
       "      <td>-0.01381134</td>\n",
       "      <td>-0.01450491</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00217821</td>\n",
       "      <td>0.00627338</td>\n",
       "      <td>0.00115375</td>\n",
       "      <td>0.00113369</td>\n",
       "      <td>0.01514317</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00620848</td>\n",
       "      <td>0.01714176</td>\n",
       "      <td>-0.00883613</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-26 00:00:00+00:00</th>\n",
       "      <td>-0.03073582</td>\n",
       "      <td>0.06613350</td>\n",
       "      <td>0.00359340</td>\n",
       "      <td>0.00719342</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01222707</td>\n",
       "      <td>-0.02524087</td>\n",
       "      <td>0.01219180</td>\n",
       "      <td>-0.00119190</td>\n",
       "      <td>0.00283652</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00262839</td>\n",
       "      <td>0.00593383</td>\n",
       "      <td>0.01245258</td>\n",
       "      <td>0.00055168</td>\n",
       "      <td>-0.07629122</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00480301</td>\n",
       "      <td>-0.01952376</td>\n",
       "      <td>-0.01062584</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-27 00:00:00+00:00</th>\n",
       "      <td>0.00772081</td>\n",
       "      <td>0.02317753</td>\n",
       "      <td>-0.00155262</td>\n",
       "      <td>-0.00187707</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01183286</td>\n",
       "      <td>-0.00792793</td>\n",
       "      <td>0.00017944</td>\n",
       "      <td>0.00984487</td>\n",
       "      <td>0.00747981</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01426699</td>\n",
       "      <td>0.02116856</td>\n",
       "      <td>0.00275077</td>\n",
       "      <td>0.01639630</td>\n",
       "      <td>0.02466443</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00374620</td>\n",
       "      <td>0.06875384</td>\n",
       "      <td>0.02016019</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-28 00:00:00+00:00</th>\n",
       "      <td>-0.01884631</td>\n",
       "      <td>-0.08055268</td>\n",
       "      <td>-0.00093620</td>\n",
       "      <td>-0.02070958</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.02226215</td>\n",
       "      <td>-0.01919983</td>\n",
       "      <td>-0.01603463</td>\n",
       "      <td>-0.04017725</td>\n",
       "      <td>-0.02245999</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.02564740</td>\n",
       "      <td>-0.02010822</td>\n",
       "      <td>-0.01113056</td>\n",
       "      <td>-0.02187072</td>\n",
       "      <td>-0.02222859</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.02500085</td>\n",
       "      <td>-0.00847214</td>\n",
       "      <td>-0.01387340</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-31 00:00:00+00:00</th>\n",
       "      <td>0.00360809</td>\n",
       "      <td>-0.02361480</td>\n",
       "      <td>-0.00235062</td>\n",
       "      <td>0.00957845</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00389347</td>\n",
       "      <td>-0.00724829</td>\n",
       "      <td>-0.00098003</td>\n",
       "      <td>0.01723607</td>\n",
       "      <td>0.01381753</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00484620</td>\n",
       "      <td>0.00029849</td>\n",
       "      <td>0.02139566</td>\n",
       "      <td>-0.00756028</td>\n",
       "      <td>0.00661503</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00774817</td>\n",
       "      <td>0.00990224</td>\n",
       "      <td>0.00637836</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-01 00:00:00+00:00</th>\n",
       "      <td>0.01165376</td>\n",
       "      <td>-0.00104701</td>\n",
       "      <td>-0.00921769</td>\n",
       "      <td>0.01681783</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01197624</td>\n",
       "      <td>0.00154551</td>\n",
       "      <td>0.01749823</td>\n",
       "      <td>0.01391831</td>\n",
       "      <td>0.02162417</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01568687</td>\n",
       "      <td>0.03200298</td>\n",
       "      <td>0.04003746</td>\n",
       "      <td>0.02479485</td>\n",
       "      <td>0.02449777</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01410150</td>\n",
       "      <td>0.01774607</td>\n",
       "      <td>0.03097047</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-02 00:00:00+00:00</th>\n",
       "      <td>0.01011176</td>\n",
       "      <td>-0.03930406</td>\n",
       "      <td>-0.02747650</td>\n",
       "      <td>-0.00205320</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.02119705</td>\n",
       "      <td>0.01106795</td>\n",
       "      <td>0.00363229</td>\n",
       "      <td>-0.00238735</td>\n",
       "      <td>0.00227994</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01284550</td>\n",
       "      <td>-0.00451785</td>\n",
       "      <td>-0.00595828</td>\n",
       "      <td>-0.01038976</td>\n",
       "      <td>-0.00182689</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00656172</td>\n",
       "      <td>0.00516054</td>\n",
       "      <td>-0.00370596</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-03 00:00:00+00:00</th>\n",
       "      <td>-0.00028893</td>\n",
       "      <td>0.00730962</td>\n",
       "      <td>0.01412639</td>\n",
       "      <td>-0.00256035</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00366196</td>\n",
       "      <td>0.00589443</td>\n",
       "      <td>0.00417765</td>\n",
       "      <td>0.00299133</td>\n",
       "      <td>-0.01334112</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01043038</td>\n",
       "      <td>-0.00816904</td>\n",
       "      <td>0.00034726</td>\n",
       "      <td>0.00855568</td>\n",
       "      <td>0.00459592</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.03141255</td>\n",
       "      <td>-0.00033292</td>\n",
       "      <td>-0.00039386</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-04 00:00:00+00:00</th>\n",
       "      <td>0.00562724</td>\n",
       "      <td>-0.03649951</td>\n",
       "      <td>0.02401434</td>\n",
       "      <td>0.00891547</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.03304712</td>\n",
       "      <td>0.00261602</td>\n",
       "      <td>-0.00436050</td>\n",
       "      <td>-0.00507009</td>\n",
       "      <td>0.01965916</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00947084</td>\n",
       "      <td>0.02470898</td>\n",
       "      <td>-0.00191681</td>\n",
       "      <td>0.00304817</td>\n",
       "      <td>-0.00550607</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00140817</td>\n",
       "      <td>0.00247147</td>\n",
       "      <td>0.01611067</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-07 00:00:00+00:00</th>\n",
       "      <td>0.00770895</td>\n",
       "      <td>0.05204586</td>\n",
       "      <td>0.00811404</td>\n",
       "      <td>0.01553804</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00217765</td>\n",
       "      <td>-0.00934092</td>\n",
       "      <td>0.00227918</td>\n",
       "      <td>0.00599520</td>\n",
       "      <td>-0.00351381</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00680069</td>\n",
       "      <td>-0.00507270</td>\n",
       "      <td>0.00780293</td>\n",
       "      <td>0.00685187</td>\n",
       "      <td>0.00276828</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00202754</td>\n",
       "      <td>-0.01087565</td>\n",
       "      <td>0.02761741</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-08 00:00:00+00:00</th>\n",
       "      <td>0.01085425</td>\n",
       "      <td>0.01645475</td>\n",
       "      <td>0.00620226</td>\n",
       "      <td>0.00943966</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00218240</td>\n",
       "      <td>-0.00173831</td>\n",
       "      <td>-0.00055735</td>\n",
       "      <td>0.00029797</td>\n",
       "      <td>-0.00600987</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00384577</td>\n",
       "      <td>0.00179527</td>\n",
       "      <td>-0.00607698</td>\n",
       "      <td>0.00518223</td>\n",
       "      <td>-0.00276064</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00385105</td>\n",
       "      <td>-0.00049496</td>\n",
       "      <td>0.00477967</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-09 00:00:00+00:00</th>\n",
       "      <td>0.00466351</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01695500</td>\n",
       "      <td>0.00833204</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00300577</td>\n",
       "      <td>-0.00153026</td>\n",
       "      <td>0.00113763</td>\n",
       "      <td>-0.01668156</td>\n",
       "      <td>0.00478144</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01183694</td>\n",
       "      <td>-0.00179205</td>\n",
       "      <td>-0.00517814</td>\n",
       "      <td>-0.01844088</td>\n",
       "      <td>0.00370461</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00182061</td>\n",
       "      <td>-0.00985108</td>\n",
       "      <td>-0.00475694</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-10 00:00:00+00:00</th>\n",
       "      <td>0.00041298</td>\n",
       "      <td>-0.00304846</td>\n",
       "      <td>-0.01136679</td>\n",
       "      <td>-0.01010922</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00110085</td>\n",
       "      <td>-0.00110982</td>\n",
       "      <td>0.00550344</td>\n",
       "      <td>0.01696456</td>\n",
       "      <td>0.00451308</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00894677</td>\n",
       "      <td>0.00391368</td>\n",
       "      <td>0.00787593</td>\n",
       "      <td>0.00551211</td>\n",
       "      <td>-0.00462381</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00485295</td>\n",
       "      <td>0.01144950</td>\n",
       "      <td>-0.02649784</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-11 00:00:00+00:00</th>\n",
       "      <td>-0.00714982</td>\n",
       "      <td>0.02836356</td>\n",
       "      <td>0.00076442</td>\n",
       "      <td>0.00650490</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00137455</td>\n",
       "      <td>0.00153431</td>\n",
       "      <td>-0.01114607</td>\n",
       "      <td>0.00297885</td>\n",
       "      <td>0.01500657</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00170520</td>\n",
       "      <td>0.01076538</td>\n",
       "      <td>-0.00456215</td>\n",
       "      <td>0.00714655</td>\n",
       "      <td>0.01202070</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00061584</td>\n",
       "      <td>0.00965987</td>\n",
       "      <td>0.01425557</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-14 00:00:00+00:00</th>\n",
       "      <td>0.00166312</td>\n",
       "      <td>-0.01579001</td>\n",
       "      <td>-0.02327358</td>\n",
       "      <td>0.00652903</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00575047</td>\n",
       "      <td>0.00924459</td>\n",
       "      <td>0.00020168</td>\n",
       "      <td>0.00564301</td>\n",
       "      <td>0.00987654</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01161568</td>\n",
       "      <td>0.00031846</td>\n",
       "      <td>0.02522953</td>\n",
       "      <td>-0.00544299</td>\n",
       "      <td>0.00547592</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01065725</td>\n",
       "      <td>0.00248369</td>\n",
       "      <td>-0.01002123</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-15 00:00:00+00:00</th>\n",
       "      <td>-0.01190476</td>\n",
       "      <td>0.01104282</td>\n",
       "      <td>-0.00392614</td>\n",
       "      <td>0.00201613</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00732946</td>\n",
       "      <td>0.01674954</td>\n",
       "      <td>-0.00802079</td>\n",
       "      <td>0.00236267</td>\n",
       "      <td>0.00023854</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00607872</td>\n",
       "      <td>-0.00180403</td>\n",
       "      <td>-0.02285301</td>\n",
       "      <td>0.00409742</td>\n",
       "      <td>0.00360404</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00852564</td>\n",
       "      <td>-0.00181453</td>\n",
       "      <td>-0.00446084</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-16 00:00:00+00:00</th>\n",
       "      <td>0.01512325</td>\n",
       "      <td>0.00195775</td>\n",
       "      <td>0.01385974</td>\n",
       "      <td>0.00896684</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00355392</td>\n",
       "      <td>-0.01050193</td>\n",
       "      <td>0.02732858</td>\n",
       "      <td>0.02209782</td>\n",
       "      <td>-0.00390509</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00917384</td>\n",
       "      <td>0.00386265</td>\n",
       "      <td>0.00868160</td>\n",
       "      <td>0.00028536</td>\n",
       "      <td>0.02709281</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00889849</td>\n",
       "      <td>0.01055741</td>\n",
       "      <td>0.00120638</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-17 00:00:00+00:00</th>\n",
       "      <td>-0.00331066</td>\n",
       "      <td>-0.01779103</td>\n",
       "      <td>-0.02484354</td>\n",
       "      <td>-0.01330906</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02914771</td>\n",
       "      <td>0.00130066</td>\n",
       "      <td>0.01178385</td>\n",
       "      <td>0.00835976</td>\n",
       "      <td>0.00855903</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01565577</td>\n",
       "      <td>0.00031771</td>\n",
       "      <td>0.00227521</td>\n",
       "      <td>-0.00191139</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00390600</td>\n",
       "      <td>0.01532474</td>\n",
       "      <td>-0.00322747</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-18 00:00:00+00:00</th>\n",
       "      <td>0.01107771</td>\n",
       "      <td>-0.02010261</td>\n",
       "      <td>-0.00669325</td>\n",
       "      <td>-0.02159490</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00961998</td>\n",
       "      <td>0.01210641</td>\n",
       "      <td>-0.00795272</td>\n",
       "      <td>0.01172098</td>\n",
       "      <td>-0.00169134</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05340361</td>\n",
       "      <td>0.00144687</td>\n",
       "      <td>0.00739258</td>\n",
       "      <td>0.01314812</td>\n",
       "      <td>-0.00438988</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00411045</td>\n",
       "      <td>0.02378154</td>\n",
       "      <td>-0.01795968</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-20 00:00:00+00:00</th>\n",
       "      <td>0.00107212</td>\n",
       "      <td>-0.00237346</td>\n",
       "      <td>0.00276686</td>\n",
       "      <td>0.00438086</td>\n",
       "      <td>0.00925624</td>\n",
       "      <td>-0.00090483</td>\n",
       "      <td>0.00611281</td>\n",
       "      <td>0.00643014</td>\n",
       "      <td>0.00054490</td>\n",
       "      <td>-0.00584294</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00813121</td>\n",
       "      <td>0.00041182</td>\n",
       "      <td>-0.00635194</td>\n",
       "      <td>0.00279330</td>\n",
       "      <td>0.00289932</td>\n",
       "      <td>-0.00449783</td>\n",
       "      <td>0.01505987</td>\n",
       "      <td>-0.00317570</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00894971</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-23 00:00:00+00:00</th>\n",
       "      <td>-0.00709429</td>\n",
       "      <td>0.00237910</td>\n",
       "      <td>-0.00122838</td>\n",
       "      <td>-0.01298872</td>\n",
       "      <td>0.00064612</td>\n",
       "      <td>-0.00372792</td>\n",
       "      <td>-0.01238148</td>\n",
       "      <td>-0.00120585</td>\n",
       "      <td>0.00163381</td>\n",
       "      <td>-0.04410655</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00469574</td>\n",
       "      <td>-0.00695468</td>\n",
       "      <td>0.00613134</td>\n",
       "      <td>0.00734514</td>\n",
       "      <td>0.02769219</td>\n",
       "      <td>0.00132239</td>\n",
       "      <td>-0.00096628</td>\n",
       "      <td>-0.00858098</td>\n",
       "      <td>-0.00199203</td>\n",
       "      <td>-0.00760006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-24 00:00:00+00:00</th>\n",
       "      <td>0.00208486</td>\n",
       "      <td>-0.02530879</td>\n",
       "      <td>0.00350426</td>\n",
       "      <td>0.00959410</td>\n",
       "      <td>-0.00032285</td>\n",
       "      <td>-0.00233603</td>\n",
       "      <td>0.00020972</td>\n",
       "      <td>-0.00453713</td>\n",
       "      <td>0.00043497</td>\n",
       "      <td>0.06374097</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00077707</td>\n",
       "      <td>0.01295953</td>\n",
       "      <td>0.01993523</td>\n",
       "      <td>-0.00956300</td>\n",
       "      <td>-0.01299182</td>\n",
       "      <td>-0.00187091</td>\n",
       "      <td>-0.00425172</td>\n",
       "      <td>-0.00904325</td>\n",
       "      <td>0.00264987</td>\n",
       "      <td>-0.00065084</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-25 00:00:00+00:00</th>\n",
       "      <td>-0.00820649</td>\n",
       "      <td>0.00193813</td>\n",
       "      <td>0.00680544</td>\n",
       "      <td>-0.00715141</td>\n",
       "      <td>-0.01374361</td>\n",
       "      <td>0.00436515</td>\n",
       "      <td>-0.00086201</td>\n",
       "      <td>-0.00233759</td>\n",
       "      <td>-0.00250000</td>\n",
       "      <td>-0.00281048</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00888765</td>\n",
       "      <td>-0.00445842</td>\n",
       "      <td>-0.00768963</td>\n",
       "      <td>-0.00279190</td>\n",
       "      <td>-0.00191255</td>\n",
       "      <td>0.00482386</td>\n",
       "      <td>0.00289380</td>\n",
       "      <td>-0.00617420</td>\n",
       "      <td>-0.00030891</td>\n",
       "      <td>0.00086836</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-27 00:00:00+00:00</th>\n",
       "      <td>-0.00325586</td>\n",
       "      <td>0.00920070</td>\n",
       "      <td>0.00328491</td>\n",
       "      <td>-0.00186283</td>\n",
       "      <td>-0.00480271</td>\n",
       "      <td>0.00061184</td>\n",
       "      <td>0.00020986</td>\n",
       "      <td>0.00336265</td>\n",
       "      <td>0.00435872</td>\n",
       "      <td>0.00331472</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00473588</td>\n",
       "      <td>0.00447839</td>\n",
       "      <td>-0.00025651</td>\n",
       "      <td>0.00263307</td>\n",
       "      <td>0.00379485</td>\n",
       "      <td>-0.00213974</td>\n",
       "      <td>0.00510503</td>\n",
       "      <td>-0.00286889</td>\n",
       "      <td>0.00501270</td>\n",
       "      <td>0.00234253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-30 00:00:00+00:00</th>\n",
       "      <td>-0.01020870</td>\n",
       "      <td>-0.01032093</td>\n",
       "      <td>-0.01279784</td>\n",
       "      <td>0.00415919</td>\n",
       "      <td>-0.03083813</td>\n",
       "      <td>-0.00354229</td>\n",
       "      <td>-0.01100361</td>\n",
       "      <td>-0.00222774</td>\n",
       "      <td>-0.00770316</td>\n",
       "      <td>0.01952228</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00421152</td>\n",
       "      <td>0.00934761</td>\n",
       "      <td>0.00529351</td>\n",
       "      <td>-0.00736321</td>\n",
       "      <td>-0.00752358</td>\n",
       "      <td>-0.00692784</td>\n",
       "      <td>-0.00618325</td>\n",
       "      <td>0.00010131</td>\n",
       "      <td>-0.00433862</td>\n",
       "      <td>-0.00807150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-01 00:00:00+00:00</th>\n",
       "      <td>0.01574786</td>\n",
       "      <td>0.04849282</td>\n",
       "      <td>-0.00239635</td>\n",
       "      <td>-0.00811576</td>\n",
       "      <td>0.01495718</td>\n",
       "      <td>0.00871792</td>\n",
       "      <td>0.01202178</td>\n",
       "      <td>0.00848039</td>\n",
       "      <td>0.01191778</td>\n",
       "      <td>-0.00097042</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01519233</td>\n",
       "      <td>0.01107484</td>\n",
       "      <td>0.00282087</td>\n",
       "      <td>0.02160044</td>\n",
       "      <td>0.01327550</td>\n",
       "      <td>0.00858179</td>\n",
       "      <td>0.02716952</td>\n",
       "      <td>0.01692683</td>\n",
       "      <td>0.01502831</td>\n",
       "      <td>0.00663191</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-02 00:00:00+00:00</th>\n",
       "      <td>-0.00528420</td>\n",
       "      <td>0.01293012</td>\n",
       "      <td>-0.02716607</td>\n",
       "      <td>-0.00902983</td>\n",
       "      <td>-0.02202152</td>\n",
       "      <td>-0.00653437</td>\n",
       "      <td>-0.00528731</td>\n",
       "      <td>-0.00499107</td>\n",
       "      <td>-0.00572663</td>\n",
       "      <td>-0.00699034</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00385752</td>\n",
       "      <td>-0.02469292</td>\n",
       "      <td>-0.02857143</td>\n",
       "      <td>0.00757240</td>\n",
       "      <td>-0.02996241</td>\n",
       "      <td>-0.01833503</td>\n",
       "      <td>0.00631281</td>\n",
       "      <td>-0.00447256</td>\n",
       "      <td>-0.01544806</td>\n",
       "      <td>-0.01360986</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-03 00:00:00+00:00</th>\n",
       "      <td>-0.00952117</td>\n",
       "      <td>-0.01255465</td>\n",
       "      <td>-0.01994438</td>\n",
       "      <td>-0.00929219</td>\n",
       "      <td>-0.02772394</td>\n",
       "      <td>-0.00141471</td>\n",
       "      <td>-0.02365007</td>\n",
       "      <td>-0.01542891</td>\n",
       "      <td>-0.02292980</td>\n",
       "      <td>-0.02782630</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00829420</td>\n",
       "      <td>-0.01081970</td>\n",
       "      <td>-0.01432669</td>\n",
       "      <td>0.00273291</td>\n",
       "      <td>-0.00095925</td>\n",
       "      <td>-0.00567594</td>\n",
       "      <td>-0.02427203</td>\n",
       "      <td>-0.02836674</td>\n",
       "      <td>-0.01572478</td>\n",
       "      <td>-0.02524442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-04 00:00:00+00:00</th>\n",
       "      <td>0.02019919</td>\n",
       "      <td>0.03930296</td>\n",
       "      <td>0.00677909</td>\n",
       "      <td>0.03324578</td>\n",
       "      <td>0.01889890</td>\n",
       "      <td>0.01195750</td>\n",
       "      <td>0.02604566</td>\n",
       "      <td>0.02992398</td>\n",
       "      <td>0.02969636</td>\n",
       "      <td>0.00271314</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02221053</td>\n",
       "      <td>0.01032552</td>\n",
       "      <td>0.00573563</td>\n",
       "      <td>0.00749501</td>\n",
       "      <td>0.01159888</td>\n",
       "      <td>0.02477363</td>\n",
       "      <td>0.04115927</td>\n",
       "      <td>0.01197660</td>\n",
       "      <td>0.02445235</td>\n",
       "      <td>0.02788171</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-07 00:00:00+00:00</th>\n",
       "      <td>-0.00033987</td>\n",
       "      <td>0.01801987</td>\n",
       "      <td>-0.02957813</td>\n",
       "      <td>-0.00629799</td>\n",
       "      <td>-0.01592051</td>\n",
       "      <td>0.00089849</td>\n",
       "      <td>0.00572671</td>\n",
       "      <td>-0.00146283</td>\n",
       "      <td>-0.03218838</td>\n",
       "      <td>-0.01198796</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00879092</td>\n",
       "      <td>-0.02612215</td>\n",
       "      <td>-0.00190007</td>\n",
       "      <td>-0.02957591</td>\n",
       "      <td>-0.01964712</td>\n",
       "      <td>0.00353962</td>\n",
       "      <td>-0.00138396</td>\n",
       "      <td>-0.04208519</td>\n",
       "      <td>-0.01184133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-08 00:00:00+00:00</th>\n",
       "      <td>-0.02330712</td>\n",
       "      <td>-0.02687583</td>\n",
       "      <td>-0.00886608</td>\n",
       "      <td>-0.00042489</td>\n",
       "      <td>0.00711446</td>\n",
       "      <td>0.00490595</td>\n",
       "      <td>-0.00020917</td>\n",
       "      <td>-0.00027950</td>\n",
       "      <td>0.02366071</td>\n",
       "      <td>-0.00821590</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00460567</td>\n",
       "      <td>-0.00391018</td>\n",
       "      <td>-0.02825109</td>\n",
       "      <td>-0.01206744</td>\n",
       "      <td>-0.00492958</td>\n",
       "      <td>-0.01707392</td>\n",
       "      <td>-0.01073476</td>\n",
       "      <td>-0.00627720</td>\n",
       "      <td>-0.03181317</td>\n",
       "      <td>0.00066573</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-09 00:00:00+00:00</th>\n",
       "      <td>-0.00516964</td>\n",
       "      <td>-0.02021340</td>\n",
       "      <td>0.02222267</td>\n",
       "      <td>-0.02207699</td>\n",
       "      <td>-0.01130272</td>\n",
       "      <td>0.00198396</td>\n",
       "      <td>-0.01294807</td>\n",
       "      <td>-0.01487559</td>\n",
       "      <td>-0.02354993</td>\n",
       "      <td>-0.02360837</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01309164</td>\n",
       "      <td>-0.00993443</td>\n",
       "      <td>0.01338977</td>\n",
       "      <td>-0.02106570</td>\n",
       "      <td>-0.00986868</td>\n",
       "      <td>-0.00056952</td>\n",
       "      <td>-0.02367896</td>\n",
       "      <td>0.00220474</td>\n",
       "      <td>-0.00748954</td>\n",
       "      <td>-0.01590047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-10 00:00:00+00:00</th>\n",
       "      <td>0.01503860</td>\n",
       "      <td>0.01009224</td>\n",
       "      <td>-0.00946596</td>\n",
       "      <td>0.00476320</td>\n",
       "      <td>-0.00446315</td>\n",
       "      <td>0.01271990</td>\n",
       "      <td>0.00777184</td>\n",
       "      <td>0.00289674</td>\n",
       "      <td>-0.00669942</td>\n",
       "      <td>0.00882138</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00675676</td>\n",
       "      <td>0.00188278</td>\n",
       "      <td>0.00079770</td>\n",
       "      <td>-0.00031695</td>\n",
       "      <td>0.01497042</td>\n",
       "      <td>0.01213779</td>\n",
       "      <td>-0.00825643</td>\n",
       "      <td>-0.00029673</td>\n",
       "      <td>0.01475919</td>\n",
       "      <td>0.01969533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-11 00:00:00+00:00</th>\n",
       "      <td>-0.01222670</td>\n",
       "      <td>-0.04535632</td>\n",
       "      <td>-0.01917906</td>\n",
       "      <td>-0.02573993</td>\n",
       "      <td>-0.03118548</td>\n",
       "      <td>0.00127956</td>\n",
       "      <td>-0.02096235</td>\n",
       "      <td>-0.02137978</td>\n",
       "      <td>0.02765288</td>\n",
       "      <td>-0.00384301</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01493822</td>\n",
       "      <td>-0.01271252</td>\n",
       "      <td>-0.01783980</td>\n",
       "      <td>-0.01775464</td>\n",
       "      <td>-0.01279343</td>\n",
       "      <td>-0.01306196</td>\n",
       "      <td>-0.02583602</td>\n",
       "      <td>-0.01011228</td>\n",
       "      <td>-0.02978165</td>\n",
       "      <td>-0.00585635</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-14 00:00:00+00:00</th>\n",
       "      <td>-0.01119741</td>\n",
       "      <td>-0.00761835</td>\n",
       "      <td>-0.00832534</td>\n",
       "      <td>-0.00618871</td>\n",
       "      <td>0.02589759</td>\n",
       "      <td>0.00440628</td>\n",
       "      <td>0.01014465</td>\n",
       "      <td>0.01007090</td>\n",
       "      <td>0.02012689</td>\n",
       "      <td>-0.00193824</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00721594</td>\n",
       "      <td>-0.00094052</td>\n",
       "      <td>0.02273800</td>\n",
       "      <td>-0.00183474</td>\n",
       "      <td>-0.01791305</td>\n",
       "      <td>0.01158048</td>\n",
       "      <td>0.00490982</td>\n",
       "      <td>0.00535594</td>\n",
       "      <td>-0.01499098</td>\n",
       "      <td>0.01658331</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-15 00:00:00+00:00</th>\n",
       "      <td>0.02468348</td>\n",
       "      <td>0.01976847</td>\n",
       "      <td>0.05799045</td>\n",
       "      <td>-0.01768577</td>\n",
       "      <td>0.01713257</td>\n",
       "      <td>-0.00819372</td>\n",
       "      <td>0.01741535</td>\n",
       "      <td>0.00338602</td>\n",
       "      <td>0.00814926</td>\n",
       "      <td>-0.00474296</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01539193</td>\n",
       "      <td>0.01351594</td>\n",
       "      <td>0.04471023</td>\n",
       "      <td>0.00435700</td>\n",
       "      <td>0.01622211</td>\n",
       "      <td>0.00163542</td>\n",
       "      <td>0.01341047</td>\n",
       "      <td>0.01578682</td>\n",
       "      <td>0.03562574</td>\n",
       "      <td>0.00815639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-16 00:00:00+00:00</th>\n",
       "      <td>0.01078027</td>\n",
       "      <td>0.01419020</td>\n",
       "      <td>0.02977102</td>\n",
       "      <td>0.00768495</td>\n",
       "      <td>0.02199833</td>\n",
       "      <td>-0.00098521</td>\n",
       "      <td>0.01007990</td>\n",
       "      <td>0.02210700</td>\n",
       "      <td>0.01637949</td>\n",
       "      <td>0.01733616</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00471295</td>\n",
       "      <td>0.00053077</td>\n",
       "      <td>-0.00352152</td>\n",
       "      <td>0.00850674</td>\n",
       "      <td>0.02493746</td>\n",
       "      <td>0.02071897</td>\n",
       "      <td>0.01280939</td>\n",
       "      <td>0.00860603</td>\n",
       "      <td>0.01075467</td>\n",
       "      <td>0.00253774</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-17 00:00:00+00:00</th>\n",
       "      <td>-0.01721238</td>\n",
       "      <td>-0.01712199</td>\n",
       "      <td>-0.04819014</td>\n",
       "      <td>-0.02119576</td>\n",
       "      <td>-0.02169610</td>\n",
       "      <td>0.00738610</td>\n",
       "      <td>-0.01715337</td>\n",
       "      <td>-0.05335502</td>\n",
       "      <td>-0.01423190</td>\n",
       "      <td>-0.02450989</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.00156361</td>\n",
       "      <td>-0.01814726</td>\n",
       "      <td>-0.01503666</td>\n",
       "      <td>-0.00314212</td>\n",
       "      <td>-0.00778738</td>\n",
       "      <td>-0.02669682</td>\n",
       "      <td>-0.01822419</td>\n",
       "      <td>-0.01196571</td>\n",
       "      <td>-0.01596035</td>\n",
       "      <td>-0.00763722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-18 00:00:00+00:00</th>\n",
       "      <td>-0.04108447</td>\n",
       "      <td>-0.03225884</td>\n",
       "      <td>-0.02286262</td>\n",
       "      <td>-0.02706364</td>\n",
       "      <td>-0.01134153</td>\n",
       "      <td>-0.00449706</td>\n",
       "      <td>-0.03446098</td>\n",
       "      <td>-0.01288309</td>\n",
       "      <td>-0.03067941</td>\n",
       "      <td>-0.01693954</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01901256</td>\n",
       "      <td>-0.01231427</td>\n",
       "      <td>-0.00872355</td>\n",
       "      <td>-0.01045055</td>\n",
       "      <td>-0.00394377</td>\n",
       "      <td>-0.01700150</td>\n",
       "      <td>-0.00499057</td>\n",
       "      <td>-0.01738362</td>\n",
       "      <td>-0.03784484</td>\n",
       "      <td>-0.00279062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-21 00:00:00+00:00</th>\n",
       "      <td>0.00945523</td>\n",
       "      <td>0.03186317</td>\n",
       "      <td>0.00053085</td>\n",
       "      <td>0.01225425</td>\n",
       "      <td>0.00824462</td>\n",
       "      <td>0.00991570</td>\n",
       "      <td>0.00777786</td>\n",
       "      <td>0.01040390</td>\n",
       "      <td>0.00339503</td>\n",
       "      <td>0.01196200</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00635765</td>\n",
       "      <td>0.01677569</td>\n",
       "      <td>-0.00025549</td>\n",
       "      <td>0.00703494</td>\n",
       "      <td>0.01477910</td>\n",
       "      <td>0.00835952</td>\n",
       "      <td>0.02171387</td>\n",
       "      <td>0.01284185</td>\n",
       "      <td>0.00227072</td>\n",
       "      <td>0.01589418</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-22 00:00:00+00:00</th>\n",
       "      <td>0.01050225</td>\n",
       "      <td>0.01167033</td>\n",
       "      <td>-0.01175973</td>\n",
       "      <td>-0.00092672</td>\n",
       "      <td>0.02474629</td>\n",
       "      <td>0.00261687</td>\n",
       "      <td>0.00997788</td>\n",
       "      <td>0.00747281</td>\n",
       "      <td>0.02401222</td>\n",
       "      <td>0.00332573</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03167093</td>\n",
       "      <td>0.00273487</td>\n",
       "      <td>0.00505438</td>\n",
       "      <td>0.01004736</td>\n",
       "      <td>0.03886271</td>\n",
       "      <td>0.00997684</td>\n",
       "      <td>-0.00544780</td>\n",
       "      <td>0.01496575</td>\n",
       "      <td>0.01455341</td>\n",
       "      <td>0.00802720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-23 00:00:00+00:00</th>\n",
       "      <td>0.01180348</td>\n",
       "      <td>0.00921901</td>\n",
       "      <td>0.00832501</td>\n",
       "      <td>0.01286896</td>\n",
       "      <td>0.01717833</td>\n",
       "      <td>0.00756710</td>\n",
       "      <td>0.01395006</td>\n",
       "      <td>0.00636498</td>\n",
       "      <td>0.00937966</td>\n",
       "      <td>0.00829624</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00919881</td>\n",
       "      <td>0.00950124</td>\n",
       "      <td>0.03270236</td>\n",
       "      <td>0.00758616</td>\n",
       "      <td>0.01119292</td>\n",
       "      <td>0.01723748</td>\n",
       "      <td>0.01534943</td>\n",
       "      <td>0.01021896</td>\n",
       "      <td>0.01877295</td>\n",
       "      <td>0.00544406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-24 00:00:00+00:00</th>\n",
       "      <td>-0.00368236</td>\n",
       "      <td>0.01202196</td>\n",
       "      <td>0.00046505</td>\n",
       "      <td>-0.00534053</td>\n",
       "      <td>-0.00204082</td>\n",
       "      <td>0.00009036</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>-0.00181999</td>\n",
       "      <td>-0.00422386</td>\n",
       "      <td>0.00567317</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00962284</td>\n",
       "      <td>-0.00062007</td>\n",
       "      <td>-0.01072430</td>\n",
       "      <td>-0.00212741</td>\n",
       "      <td>0.00555290</td>\n",
       "      <td>-0.00161385</td>\n",
       "      <td>-0.00162043</td>\n",
       "      <td>0.00136401</td>\n",
       "      <td>0.00397518</td>\n",
       "      <td>0.00312135</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-28 00:00:00+00:00</th>\n",
       "      <td>0.00704030</td>\n",
       "      <td>-0.01325882</td>\n",
       "      <td>0.00952567</td>\n",
       "      <td>-0.01120361</td>\n",
       "      <td>0.00495300</td>\n",
       "      <td>0.00230910</td>\n",
       "      <td>-0.00154955</td>\n",
       "      <td>-0.00144052</td>\n",
       "      <td>-0.00106045</td>\n",
       "      <td>-0.00616419</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00050303</td>\n",
       "      <td>-0.00106364</td>\n",
       "      <td>-0.00743906</td>\n",
       "      <td>0.00493013</td>\n",
       "      <td>-0.02113809</td>\n",
       "      <td>-0.00348374</td>\n",
       "      <td>-0.00217727</td>\n",
       "      <td>-0.00641306</td>\n",
       "      <td>-0.00503256</td>\n",
       "      <td>-0.00478388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-29 00:00:00+00:00</th>\n",
       "      <td>0.01944279</td>\n",
       "      <td>0.00625637</td>\n",
       "      <td>0.01095726</td>\n",
       "      <td>0.01797599</td>\n",
       "      <td>0.01191076</td>\n",
       "      <td>0.00556913</td>\n",
       "      <td>0.01754180</td>\n",
       "      <td>0.01191401</td>\n",
       "      <td>0.01199575</td>\n",
       "      <td>0.01522413</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01381318</td>\n",
       "      <td>0.00796362</td>\n",
       "      <td>0.00533553</td>\n",
       "      <td>0.01143615</td>\n",
       "      <td>0.01128297</td>\n",
       "      <td>0.00430697</td>\n",
       "      <td>0.00541538</td>\n",
       "      <td>0.00723499</td>\n",
       "      <td>0.00617376</td>\n",
       "      <td>0.00899694</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-30 00:00:00+00:00</th>\n",
       "      <td>-0.00638405</td>\n",
       "      <td>-0.01608535</td>\n",
       "      <td>-0.00525423</td>\n",
       "      <td>-0.01305616</td>\n",
       "      <td>0.00590373</td>\n",
       "      <td>0.00239063</td>\n",
       "      <td>-0.01201673</td>\n",
       "      <td>0.00512422</td>\n",
       "      <td>-0.00052449</td>\n",
       "      <td>-0.01325558</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01461683</td>\n",
       "      <td>-0.00706442</td>\n",
       "      <td>-0.01326109</td>\n",
       "      <td>-0.00807866</td>\n",
       "      <td>0.00184720</td>\n",
       "      <td>-0.00618212</td>\n",
       "      <td>-0.00578080</td>\n",
       "      <td>-0.00292090</td>\n",
       "      <td>-0.01223479</td>\n",
       "      <td>-0.00145450</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-31 00:00:00+00:00</th>\n",
       "      <td>-0.01243206</td>\n",
       "      <td>-0.01053186</td>\n",
       "      <td>-0.00587919</td>\n",
       "      <td>-0.01919944</td>\n",
       "      <td>-0.00937219</td>\n",
       "      <td>-0.01248112</td>\n",
       "      <td>-0.00795266</td>\n",
       "      <td>-0.01284442</td>\n",
       "      <td>-0.01406381</td>\n",
       "      <td>-0.02174525</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.01605213</td>\n",
       "      <td>-0.01817456</td>\n",
       "      <td>-0.00205030</td>\n",
       "      <td>-0.00911914</td>\n",
       "      <td>-0.00837082</td>\n",
       "      <td>-0.01003138</td>\n",
       "      <td>-0.01029925</td>\n",
       "      <td>0.00117577</td>\n",
       "      <td>-0.00621188</td>\n",
       "      <td>-0.00705088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-04 00:00:00+00:00</th>\n",
       "      <td>-0.02828157</td>\n",
       "      <td>-0.03398810</td>\n",
       "      <td>0.01149418</td>\n",
       "      <td>0.00085542</td>\n",
       "      <td>-0.02751240</td>\n",
       "      <td>-0.01774070</td>\n",
       "      <td>-0.04406668</td>\n",
       "      <td>-0.02555086</td>\n",
       "      <td>-0.02097083</td>\n",
       "      <td>-0.01591868</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.02476714</td>\n",
       "      <td>-0.02492212</td>\n",
       "      <td>-0.00627612</td>\n",
       "      <td>-0.03271090</td>\n",
       "      <td>-0.03105128</td>\n",
       "      <td>-0.01151995</td>\n",
       "      <td>-0.01148918</td>\n",
       "      <td>-0.00760365</td>\n",
       "      <td>-0.02161389</td>\n",
       "      <td>-0.01356408</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-05 00:00:00+00:00</th>\n",
       "      <td>0.00405845</td>\n",
       "      <td>-0.00954098</td>\n",
       "      <td>-0.00683002</td>\n",
       "      <td>-0.02505441</td>\n",
       "      <td>-0.00416936</td>\n",
       "      <td>0.01462920</td>\n",
       "      <td>-0.00024665</td>\n",
       "      <td>0.00520704</td>\n",
       "      <td>0.00402305</td>\n",
       "      <td>-0.00734750</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00209794</td>\n",
       "      <td>0.01486318</td>\n",
       "      <td>0.00851070</td>\n",
       "      <td>0.02039022</td>\n",
       "      <td>-0.00195732</td>\n",
       "      <td>-0.00028634</td>\n",
       "      <td>-0.00249493</td>\n",
       "      <td>0.02081954</td>\n",
       "      <td>-0.01085325</td>\n",
       "      <td>0.01564723</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1256 rows × 490 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           Equity(0 [A])  Equity(1 [AAL])  Equity(2 [AAP])  \\\n",
       "2011-01-07 00:00:00+00:00     0.00843652       0.01423027       0.02670202   \n",
       "2011-01-10 00:00:00+00:00    -0.00417428       0.00619534       0.00743543   \n",
       "2011-01-11 00:00:00+00:00    -0.00188630      -0.04364361      -0.00592730   \n",
       "2011-01-12 00:00:00+00:00     0.01725375      -0.00823708       0.01338721   \n",
       "2011-01-13 00:00:00+00:00    -0.00455851       0.00095465       0.00303109   \n",
       "2011-01-14 00:00:00+00:00     0.00343886      -0.00915594       0.00302193   \n",
       "2011-01-18 00:00:00+00:00     0.03425353      -0.06208490      -0.00428562   \n",
       "2011-01-19 00:00:00+00:00    -0.01022379      -0.00892857       0.00875376   \n",
       "2011-01-20 00:00:00+00:00    -0.00849568       0.02195299      -0.00473189   \n",
       "2011-01-21 00:00:00+00:00     0.00787281      -0.04103759       0.00554409   \n",
       "2011-01-24 00:00:00+00:00     0.01464622       0.02747253      -0.00110591   \n",
       "2011-01-25 00:00:00+00:00    -0.00673624       0.00298231       0.00914590   \n",
       "2011-01-26 00:00:00+00:00    -0.03073582       0.06613350       0.00359340   \n",
       "2011-01-27 00:00:00+00:00     0.00772081       0.02317753      -0.00155262   \n",
       "2011-01-28 00:00:00+00:00    -0.01884631      -0.08055268      -0.00093620   \n",
       "2011-01-31 00:00:00+00:00     0.00360809      -0.02361480      -0.00235062   \n",
       "2011-02-01 00:00:00+00:00     0.01165376      -0.00104701      -0.00921769   \n",
       "2011-02-02 00:00:00+00:00     0.01011176      -0.03930406      -0.02747650   \n",
       "2011-02-03 00:00:00+00:00    -0.00028893       0.00730962       0.01412639   \n",
       "2011-02-04 00:00:00+00:00     0.00562724      -0.03649951       0.02401434   \n",
       "2011-02-07 00:00:00+00:00     0.00770895       0.05204586       0.00811404   \n",
       "2011-02-08 00:00:00+00:00     0.01085425       0.01645475       0.00620226   \n",
       "2011-02-09 00:00:00+00:00     0.00466351       0.00000000       0.01695500   \n",
       "2011-02-10 00:00:00+00:00     0.00041298      -0.00304846      -0.01136679   \n",
       "2011-02-11 00:00:00+00:00    -0.00714982       0.02836356       0.00076442   \n",
       "2011-02-14 00:00:00+00:00     0.00166312      -0.01579001      -0.02327358   \n",
       "2011-02-15 00:00:00+00:00    -0.01190476       0.01104282      -0.00392614   \n",
       "2011-02-16 00:00:00+00:00     0.01512325       0.00195775       0.01385974   \n",
       "2011-02-17 00:00:00+00:00    -0.00331066      -0.01779103      -0.02484354   \n",
       "2011-02-18 00:00:00+00:00     0.01107771      -0.02010261      -0.00669325   \n",
       "...                                  ...              ...              ...   \n",
       "2015-11-20 00:00:00+00:00     0.00107212      -0.00237346       0.00276686   \n",
       "2015-11-23 00:00:00+00:00    -0.00709429       0.00237910      -0.00122838   \n",
       "2015-11-24 00:00:00+00:00     0.00208486      -0.02530879       0.00350426   \n",
       "2015-11-25 00:00:00+00:00    -0.00820649       0.00193813       0.00680544   \n",
       "2015-11-27 00:00:00+00:00    -0.00325586       0.00920070       0.00328491   \n",
       "2015-11-30 00:00:00+00:00    -0.01020870      -0.01032093      -0.01279784   \n",
       "2015-12-01 00:00:00+00:00     0.01574786       0.04849282      -0.00239635   \n",
       "2015-12-02 00:00:00+00:00    -0.00528420       0.01293012      -0.02716607   \n",
       "2015-12-03 00:00:00+00:00    -0.00952117      -0.01255465      -0.01994438   \n",
       "2015-12-04 00:00:00+00:00     0.02019919       0.03930296       0.00677909   \n",
       "2015-12-07 00:00:00+00:00    -0.00033987       0.01801987      -0.02957813   \n",
       "2015-12-08 00:00:00+00:00    -0.02330712      -0.02687583      -0.00886608   \n",
       "2015-12-09 00:00:00+00:00    -0.00516964      -0.02021340       0.02222267   \n",
       "2015-12-10 00:00:00+00:00     0.01503860       0.01009224      -0.00946596   \n",
       "2015-12-11 00:00:00+00:00    -0.01222670      -0.04535632      -0.01917906   \n",
       "2015-12-14 00:00:00+00:00    -0.01119741      -0.00761835      -0.00832534   \n",
       "2015-12-15 00:00:00+00:00     0.02468348       0.01976847       0.05799045   \n",
       "2015-12-16 00:00:00+00:00     0.01078027       0.01419020       0.02977102   \n",
       "2015-12-17 00:00:00+00:00    -0.01721238      -0.01712199      -0.04819014   \n",
       "2015-12-18 00:00:00+00:00    -0.04108447      -0.03225884      -0.02286262   \n",
       "2015-12-21 00:00:00+00:00     0.00945523       0.03186317       0.00053085   \n",
       "2015-12-22 00:00:00+00:00     0.01050225       0.01167033      -0.01175973   \n",
       "2015-12-23 00:00:00+00:00     0.01180348       0.00921901       0.00832501   \n",
       "2015-12-24 00:00:00+00:00    -0.00368236       0.01202196       0.00046505   \n",
       "2015-12-28 00:00:00+00:00     0.00704030      -0.01325882       0.00952567   \n",
       "2015-12-29 00:00:00+00:00     0.01944279       0.00625637       0.01095726   \n",
       "2015-12-30 00:00:00+00:00    -0.00638405      -0.01608535      -0.00525423   \n",
       "2015-12-31 00:00:00+00:00    -0.01243206      -0.01053186      -0.00587919   \n",
       "2016-01-04 00:00:00+00:00    -0.02828157      -0.03398810       0.01149418   \n",
       "2016-01-05 00:00:00+00:00     0.00405845      -0.00954098      -0.00683002   \n",
       "\n",
       "                           Equity(3 [AAPL])  Equity(4 [ABBV])  \\\n",
       "2011-01-07 00:00:00+00:00        0.00714639        0.00000000   \n",
       "2011-01-10 00:00:00+00:00        0.01885158        0.00000000   \n",
       "2011-01-11 00:00:00+00:00       -0.00236744        0.00000000   \n",
       "2011-01-12 00:00:00+00:00        0.00813289        0.00000000   \n",
       "2011-01-13 00:00:00+00:00        0.00365656        0.00000000   \n",
       "2011-01-14 00:00:00+00:00        0.00810620        0.00000000   \n",
       "2011-01-18 00:00:00+00:00       -0.02247419        0.00000000   \n",
       "2011-01-19 00:00:00+00:00       -0.00531448        0.00000000   \n",
       "2011-01-20 00:00:00+00:00       -0.01818900        0.00000000   \n",
       "2011-01-21 00:00:00+00:00       -0.01791080        0.00000000   \n",
       "2011-01-24 00:00:00+00:00        0.03283704        0.00000000   \n",
       "2011-01-25 00:00:00+00:00        0.01170955        0.00000000   \n",
       "2011-01-26 00:00:00+00:00        0.00719342        0.00000000   \n",
       "2011-01-27 00:00:00+00:00       -0.00187707        0.00000000   \n",
       "2011-01-28 00:00:00+00:00       -0.02070958        0.00000000   \n",
       "2011-01-31 00:00:00+00:00        0.00957845        0.00000000   \n",
       "2011-02-01 00:00:00+00:00        0.01681783        0.00000000   \n",
       "2011-02-02 00:00:00+00:00       -0.00205320        0.00000000   \n",
       "2011-02-03 00:00:00+00:00       -0.00256035        0.00000000   \n",
       "2011-02-04 00:00:00+00:00        0.00891547        0.00000000   \n",
       "2011-02-07 00:00:00+00:00        0.01553804        0.00000000   \n",
       "2011-02-08 00:00:00+00:00        0.00943966        0.00000000   \n",
       "2011-02-09 00:00:00+00:00        0.00833204        0.00000000   \n",
       "2011-02-10 00:00:00+00:00       -0.01010922        0.00000000   \n",
       "2011-02-11 00:00:00+00:00        0.00650490        0.00000000   \n",
       "2011-02-14 00:00:00+00:00        0.00652903        0.00000000   \n",
       "2011-02-15 00:00:00+00:00        0.00201613        0.00000000   \n",
       "2011-02-16 00:00:00+00:00        0.00896684        0.00000000   \n",
       "2011-02-17 00:00:00+00:00       -0.01330906        0.00000000   \n",
       "2011-02-18 00:00:00+00:00       -0.02159490        0.00000000   \n",
       "...                                     ...               ...   \n",
       "2015-11-20 00:00:00+00:00        0.00438086        0.00925624   \n",
       "2015-11-23 00:00:00+00:00       -0.01298872        0.00064612   \n",
       "2015-11-24 00:00:00+00:00        0.00959410       -0.00032285   \n",
       "2015-11-25 00:00:00+00:00       -0.00715141       -0.01374361   \n",
       "2015-11-27 00:00:00+00:00       -0.00186283       -0.00480271   \n",
       "2015-11-30 00:00:00+00:00        0.00415919       -0.03083813   \n",
       "2015-12-01 00:00:00+00:00       -0.00811576        0.01495718   \n",
       "2015-12-02 00:00:00+00:00       -0.00902983       -0.02202152   \n",
       "2015-12-03 00:00:00+00:00       -0.00929219       -0.02772394   \n",
       "2015-12-04 00:00:00+00:00        0.03324578        0.01889890   \n",
       "2015-12-07 00:00:00+00:00       -0.00629799       -0.01592051   \n",
       "2015-12-08 00:00:00+00:00       -0.00042489        0.00711446   \n",
       "2015-12-09 00:00:00+00:00       -0.02207699       -0.01130272   \n",
       "2015-12-10 00:00:00+00:00        0.00476320       -0.00446315   \n",
       "2015-12-11 00:00:00+00:00       -0.02573993       -0.03118548   \n",
       "2015-12-14 00:00:00+00:00       -0.00618871        0.02589759   \n",
       "2015-12-15 00:00:00+00:00       -0.01768577        0.01713257   \n",
       "2015-12-16 00:00:00+00:00        0.00768495        0.02199833   \n",
       "2015-12-17 00:00:00+00:00       -0.02119576       -0.02169610   \n",
       "2015-12-18 00:00:00+00:00       -0.02706364       -0.01134153   \n",
       "2015-12-21 00:00:00+00:00        0.01225425        0.00824462   \n",
       "2015-12-22 00:00:00+00:00       -0.00092672        0.02474629   \n",
       "2015-12-23 00:00:00+00:00        0.01286896        0.01717833   \n",
       "2015-12-24 00:00:00+00:00       -0.00534053       -0.00204082   \n",
       "2015-12-28 00:00:00+00:00       -0.01120361        0.00495300   \n",
       "2015-12-29 00:00:00+00:00        0.01797599        0.01191076   \n",
       "2015-12-30 00:00:00+00:00       -0.01305616        0.00590373   \n",
       "2015-12-31 00:00:00+00:00       -0.01919944       -0.00937219   \n",
       "2016-01-04 00:00:00+00:00        0.00085542       -0.02751240   \n",
       "2016-01-05 00:00:00+00:00       -0.02505441       -0.00416936   \n",
       "\n",
       "                           Equity(5 [ABC])  Equity(6 [ABT])  Equity(7 [ACN])  \\\n",
       "2011-01-07 00:00:00+00:00       0.00199434       0.00416541       0.00164769   \n",
       "2011-01-10 00:00:00+00:00      -0.00571429      -0.00889600      -0.00885384   \n",
       "2011-01-11 00:00:00+00:00       0.00978303      -0.00206747       0.01371668   \n",
       "2011-01-12 00:00:00+00:00      -0.00597922      -0.00101061       0.02296913   \n",
       "2011-01-13 00:00:00+00:00       0.01492537      -0.00445119      -0.00040011   \n",
       "2011-01-14 00:00:00+00:00       0.00139452      -0.01011076       0.00259000   \n",
       "2011-01-18 00:00:00+00:00       0.02088872       0.00662116       0.00699843   \n",
       "2011-01-19 00:00:00+00:00      -0.01714410       0.00275342      -0.00296182   \n",
       "2011-01-20 00:00:00+00:00       0.00479450       0.01332249       0.01871257   \n",
       "2011-01-21 00:00:00+00:00       0.01064197      -0.00085307      -0.00195169   \n",
       "2011-01-24 00:00:00+00:00       0.00524943       0.00522324       0.00842018   \n",
       "2011-01-25 00:00:00+00:00      -0.00936254      -0.00434674       0.00485935   \n",
       "2011-01-26 00:00:00+00:00       0.01222707      -0.02524087       0.01219180   \n",
       "2011-01-27 00:00:00+00:00       0.01183286      -0.00792793       0.00017944   \n",
       "2011-01-28 00:00:00+00:00      -0.02226215      -0.01919983      -0.01603463   \n",
       "2011-01-31 00:00:00+00:00      -0.00389347      -0.00724829      -0.00098003   \n",
       "2011-02-01 00:00:00+00:00       0.01197624       0.00154551       0.01749823   \n",
       "2011-02-02 00:00:00+00:00      -0.02119705       0.01106795       0.00363229   \n",
       "2011-02-03 00:00:00+00:00      -0.00366196       0.00589443       0.00417765   \n",
       "2011-02-04 00:00:00+00:00       0.03304712       0.00261602      -0.00436050   \n",
       "2011-02-07 00:00:00+00:00      -0.00217765      -0.00934092       0.00227918   \n",
       "2011-02-08 00:00:00+00:00       0.00218240      -0.00173831      -0.00055735   \n",
       "2011-02-09 00:00:00+00:00       0.00300577      -0.00153026       0.00113763   \n",
       "2011-02-10 00:00:00+00:00       0.00110085      -0.00110982       0.00550344   \n",
       "2011-02-11 00:00:00+00:00      -0.00137455       0.00153431      -0.01114607   \n",
       "2011-02-14 00:00:00+00:00       0.00575047       0.00924459       0.00020168   \n",
       "2011-02-15 00:00:00+00:00      -0.00732946       0.01674954      -0.00802079   \n",
       "2011-02-16 00:00:00+00:00      -0.00355392      -0.01050193       0.02732858   \n",
       "2011-02-17 00:00:00+00:00       0.02914771       0.00130066       0.01178385   \n",
       "2011-02-18 00:00:00+00:00       0.00961998       0.01210641      -0.00795272   \n",
       "...                                    ...              ...              ...   \n",
       "2015-11-20 00:00:00+00:00      -0.00090483       0.00611281       0.00643014   \n",
       "2015-11-23 00:00:00+00:00      -0.00372792      -0.01238148      -0.00120585   \n",
       "2015-11-24 00:00:00+00:00      -0.00233603       0.00020972      -0.00453713   \n",
       "2015-11-25 00:00:00+00:00       0.00436515      -0.00086201      -0.00233759   \n",
       "2015-11-27 00:00:00+00:00       0.00061184       0.00020986       0.00336265   \n",
       "2015-11-30 00:00:00+00:00      -0.00354229      -0.01100361      -0.00222774   \n",
       "2015-12-01 00:00:00+00:00       0.00871792       0.01202178       0.00848039   \n",
       "2015-12-02 00:00:00+00:00      -0.00653437      -0.00528731      -0.00499107   \n",
       "2015-12-03 00:00:00+00:00      -0.00141471      -0.02365007      -0.01542891   \n",
       "2015-12-04 00:00:00+00:00       0.01195750       0.02604566       0.02992398   \n",
       "2015-12-07 00:00:00+00:00       0.00089849       0.00572671      -0.00146283   \n",
       "2015-12-08 00:00:00+00:00       0.00490595      -0.00020917      -0.00027950   \n",
       "2015-12-09 00:00:00+00:00       0.00198396      -0.01294807      -0.01487559   \n",
       "2015-12-10 00:00:00+00:00       0.01271990       0.00777184       0.00289674   \n",
       "2015-12-11 00:00:00+00:00       0.00127956      -0.02096235      -0.02137978   \n",
       "2015-12-14 00:00:00+00:00       0.00440628       0.01014465       0.01007090   \n",
       "2015-12-15 00:00:00+00:00      -0.00819372       0.01741535       0.00338602   \n",
       "2015-12-16 00:00:00+00:00      -0.00098521       0.01007990       0.02210700   \n",
       "2015-12-17 00:00:00+00:00       0.00738610      -0.01715337      -0.05335502   \n",
       "2015-12-18 00:00:00+00:00      -0.00449706      -0.03446098      -0.01288309   \n",
       "2015-12-21 00:00:00+00:00       0.00991570       0.00777786       0.01040390   \n",
       "2015-12-22 00:00:00+00:00       0.00261687       0.00997788       0.00747281   \n",
       "2015-12-23 00:00:00+00:00       0.00756710       0.01395006       0.00636498   \n",
       "2015-12-24 00:00:00+00:00       0.00009036       0.00000000      -0.00181999   \n",
       "2015-12-28 00:00:00+00:00       0.00230910      -0.00154955      -0.00144052   \n",
       "2015-12-29 00:00:00+00:00       0.00556913       0.01754180       0.01191401   \n",
       "2015-12-30 00:00:00+00:00       0.00239063      -0.01201673       0.00512422   \n",
       "2015-12-31 00:00:00+00:00      -0.01248112      -0.00795266      -0.01284442   \n",
       "2016-01-04 00:00:00+00:00      -0.01774070      -0.04406668      -0.02555086   \n",
       "2016-01-05 00:00:00+00:00       0.01462920      -0.00024665       0.00520704   \n",
       "\n",
       "                           Equity(8 [ADBE])  Equity(9 [ADI])  \\\n",
       "2011-01-07 00:00:00+00:00       -0.00712736      -0.00581846   \n",
       "2011-01-10 00:00:00+00:00        0.02871411       0.00292626   \n",
       "2011-01-11 00:00:00+00:00        0.00060680       0.00875316   \n",
       "2011-01-12 00:00:00+00:00        0.01795027       0.00025710   \n",
       "2011-01-13 00:00:00+00:00       -0.00571905      -0.00501221   \n",
       "2011-01-14 00:00:00+00:00        0.01228280       0.01982692   \n",
       "2011-01-18 00:00:00+00:00        0.01154188       0.03264518   \n",
       "2011-01-19 00:00:00+00:00       -0.00789936      -0.02057462   \n",
       "2011-01-20 00:00:00+00:00       -0.01238573      -0.00281761   \n",
       "2011-01-21 00:00:00+00:00       -0.00656913      -0.00411277   \n",
       "2011-01-24 00:00:00+00:00        0.02284340       0.01497431   \n",
       "2011-01-25 00:00:00+00:00       -0.01381134      -0.01450491   \n",
       "2011-01-26 00:00:00+00:00       -0.00119190       0.00283652   \n",
       "2011-01-27 00:00:00+00:00        0.00984487       0.00747981   \n",
       "2011-01-28 00:00:00+00:00       -0.04017725      -0.02245999   \n",
       "2011-01-31 00:00:00+00:00        0.01723607       0.01381753   \n",
       "2011-02-01 00:00:00+00:00        0.01391831       0.02162417   \n",
       "2011-02-02 00:00:00+00:00       -0.00238735       0.00227994   \n",
       "2011-02-03 00:00:00+00:00        0.00299133      -0.01334112   \n",
       "2011-02-04 00:00:00+00:00       -0.00507009       0.01965916   \n",
       "2011-02-07 00:00:00+00:00        0.00599520      -0.00351381   \n",
       "2011-02-08 00:00:00+00:00        0.00029797      -0.00600987   \n",
       "2011-02-09 00:00:00+00:00       -0.01668156       0.00478144   \n",
       "2011-02-10 00:00:00+00:00        0.01696456       0.00451308   \n",
       "2011-02-11 00:00:00+00:00        0.00297885       0.01500657   \n",
       "2011-02-14 00:00:00+00:00        0.00564301       0.00987654   \n",
       "2011-02-15 00:00:00+00:00        0.00236267       0.00023854   \n",
       "2011-02-16 00:00:00+00:00        0.02209782      -0.00390509   \n",
       "2011-02-17 00:00:00+00:00        0.00835976       0.00855903   \n",
       "2011-02-18 00:00:00+00:00        0.01172098      -0.00169134   \n",
       "...                                     ...              ...   \n",
       "2015-11-20 00:00:00+00:00        0.00054490      -0.00584294   \n",
       "2015-11-23 00:00:00+00:00        0.00163381      -0.04410655   \n",
       "2015-11-24 00:00:00+00:00        0.00043497       0.06374097   \n",
       "2015-11-25 00:00:00+00:00       -0.00250000      -0.00281048   \n",
       "2015-11-27 00:00:00+00:00        0.00435872       0.00331472   \n",
       "2015-11-30 00:00:00+00:00       -0.00770316       0.01952228   \n",
       "2015-12-01 00:00:00+00:00        0.01191778      -0.00097042   \n",
       "2015-12-02 00:00:00+00:00       -0.00572663      -0.00699034   \n",
       "2015-12-03 00:00:00+00:00       -0.02292980      -0.02782630   \n",
       "2015-12-04 00:00:00+00:00        0.02969636       0.00271314   \n",
       "2015-12-07 00:00:00+00:00       -0.03218838      -0.01198796   \n",
       "2015-12-08 00:00:00+00:00        0.02366071      -0.00821590   \n",
       "2015-12-09 00:00:00+00:00       -0.02354993      -0.02360837   \n",
       "2015-12-10 00:00:00+00:00       -0.00669942       0.00882138   \n",
       "2015-12-11 00:00:00+00:00        0.02765288      -0.00384301   \n",
       "2015-12-14 00:00:00+00:00        0.02012689      -0.00193824   \n",
       "2015-12-15 00:00:00+00:00        0.00814926      -0.00474296   \n",
       "2015-12-16 00:00:00+00:00        0.01637949       0.01733616   \n",
       "2015-12-17 00:00:00+00:00       -0.01423190      -0.02450989   \n",
       "2015-12-18 00:00:00+00:00       -0.03067941      -0.01693954   \n",
       "2015-12-21 00:00:00+00:00        0.00339503       0.01196200   \n",
       "2015-12-22 00:00:00+00:00        0.02401222       0.00332573   \n",
       "2015-12-23 00:00:00+00:00        0.00937966       0.00829624   \n",
       "2015-12-24 00:00:00+00:00       -0.00422386       0.00567317   \n",
       "2015-12-28 00:00:00+00:00       -0.00106045      -0.00616419   \n",
       "2015-12-29 00:00:00+00:00        0.01199575       0.01522413   \n",
       "2015-12-30 00:00:00+00:00       -0.00052449      -0.01325558   \n",
       "2015-12-31 00:00:00+00:00       -0.01406381      -0.02174525   \n",
       "2016-01-04 00:00:00+00:00       -0.02097083      -0.01591868   \n",
       "2016-01-05 00:00:00+00:00        0.00402305      -0.00734750   \n",
       "\n",
       "                                 ...          Equity(481 [XL])  \\\n",
       "2011-01-07 00:00:00+00:00        ...               -0.00183775   \n",
       "2011-01-10 00:00:00+00:00        ...                0.00094687   \n",
       "2011-01-11 00:00:00+00:00        ...                0.00131385   \n",
       "2011-01-12 00:00:00+00:00        ...                0.00498609   \n",
       "2011-01-13 00:00:00+00:00        ...                0.03049927   \n",
       "2011-01-14 00:00:00+00:00        ...                0.02660653   \n",
       "2011-01-18 00:00:00+00:00        ...                0.00167843   \n",
       "2011-01-19 00:00:00+00:00        ...               -0.01483416   \n",
       "2011-01-20 00:00:00+00:00        ...               -0.02451226   \n",
       "2011-01-21 00:00:00+00:00        ...                0.00000000   \n",
       "2011-01-24 00:00:00+00:00        ...                0.01235897   \n",
       "2011-01-25 00:00:00+00:00        ...                0.00217821   \n",
       "2011-01-26 00:00:00+00:00        ...                0.00262839   \n",
       "2011-01-27 00:00:00+00:00        ...                0.01426699   \n",
       "2011-01-28 00:00:00+00:00        ...               -0.02564740   \n",
       "2011-01-31 00:00:00+00:00        ...                0.00484620   \n",
       "2011-02-01 00:00:00+00:00        ...                0.01568687   \n",
       "2011-02-02 00:00:00+00:00        ...               -0.01284550   \n",
       "2011-02-03 00:00:00+00:00        ...                0.01043038   \n",
       "2011-02-04 00:00:00+00:00        ...                0.00947084   \n",
       "2011-02-07 00:00:00+00:00        ...                0.00680069   \n",
       "2011-02-08 00:00:00+00:00        ...                0.00384577   \n",
       "2011-02-09 00:00:00+00:00        ...               -0.01183694   \n",
       "2011-02-10 00:00:00+00:00        ...               -0.00894677   \n",
       "2011-02-11 00:00:00+00:00        ...                0.00170520   \n",
       "2011-02-14 00:00:00+00:00        ...               -0.01161568   \n",
       "2011-02-15 00:00:00+00:00        ...               -0.00607872   \n",
       "2011-02-16 00:00:00+00:00        ...                0.00917384   \n",
       "2011-02-17 00:00:00+00:00        ...                0.01565577   \n",
       "2011-02-18 00:00:00+00:00        ...                0.05340361   \n",
       "...                              ...                       ...   \n",
       "2015-11-20 00:00:00+00:00        ...                0.00813121   \n",
       "2015-11-23 00:00:00+00:00        ...               -0.00469574   \n",
       "2015-11-24 00:00:00+00:00        ...               -0.00077707   \n",
       "2015-11-25 00:00:00+00:00        ...               -0.00888765   \n",
       "2015-11-27 00:00:00+00:00        ...                0.00473588   \n",
       "2015-11-30 00:00:00+00:00        ...                0.00421152   \n",
       "2015-12-01 00:00:00+00:00        ...                0.01519233   \n",
       "2015-12-02 00:00:00+00:00        ...               -0.00385752   \n",
       "2015-12-03 00:00:00+00:00        ...               -0.00829420   \n",
       "2015-12-04 00:00:00+00:00        ...                0.02221053   \n",
       "2015-12-07 00:00:00+00:00        ...                0.00000000   \n",
       "2015-12-08 00:00:00+00:00        ...               -0.00460567   \n",
       "2015-12-09 00:00:00+00:00        ...               -0.01309164   \n",
       "2015-12-10 00:00:00+00:00        ...               -0.00675676   \n",
       "2015-12-11 00:00:00+00:00        ...               -0.01493822   \n",
       "2015-12-14 00:00:00+00:00        ...                0.00721594   \n",
       "2015-12-15 00:00:00+00:00        ...                0.01539193   \n",
       "2015-12-16 00:00:00+00:00        ...                0.00471295   \n",
       "2015-12-17 00:00:00+00:00        ...               -0.00156361   \n",
       "2015-12-18 00:00:00+00:00        ...               -0.01901256   \n",
       "2015-12-21 00:00:00+00:00        ...                0.00635765   \n",
       "2015-12-22 00:00:00+00:00        ...                0.03167093   \n",
       "2015-12-23 00:00:00+00:00        ...                0.00919881   \n",
       "2015-12-24 00:00:00+00:00        ...                0.00962284   \n",
       "2015-12-28 00:00:00+00:00        ...                0.00050303   \n",
       "2015-12-29 00:00:00+00:00        ...                0.01381318   \n",
       "2015-12-30 00:00:00+00:00        ...               -0.01461683   \n",
       "2015-12-31 00:00:00+00:00        ...               -0.01605213   \n",
       "2016-01-04 00:00:00+00:00        ...               -0.02476714   \n",
       "2016-01-05 00:00:00+00:00        ...                0.00209794   \n",
       "\n",
       "                           Equity(482 [XLNX])  Equity(483 [XOM])  \\\n",
       "2011-01-07 00:00:00+00:00         -0.00561865         0.00546091   \n",
       "2011-01-10 00:00:00+00:00          0.00781438        -0.00608100   \n",
       "2011-01-11 00:00:00+00:00          0.01017933         0.00744242   \n",
       "2011-01-12 00:00:00+00:00          0.01566621         0.01176334   \n",
       "2011-01-13 00:00:00+00:00         -0.00321668         0.00169383   \n",
       "2011-01-14 00:00:00+00:00          0.02589425         0.01474258   \n",
       "2011-01-18 00:00:00+00:00          0.00250133         0.01116324   \n",
       "2011-01-19 00:00:00+00:00         -0.02358990        -0.00596800   \n",
       "2011-01-20 00:00:00+00:00          0.00774353        -0.00626137   \n",
       "2011-01-21 00:00:00+00:00          0.00061472         0.01582494   \n",
       "2011-01-24 00:00:00+00:00          0.01601137        -0.00494300   \n",
       "2011-01-25 00:00:00+00:00          0.00627338         0.00115375   \n",
       "2011-01-26 00:00:00+00:00          0.00593383         0.01245258   \n",
       "2011-01-27 00:00:00+00:00          0.02116856         0.00275077   \n",
       "2011-01-28 00:00:00+00:00         -0.02010822        -0.01113056   \n",
       "2011-01-31 00:00:00+00:00          0.00029849         0.02139566   \n",
       "2011-02-01 00:00:00+00:00          0.03200298         0.04003746   \n",
       "2011-02-02 00:00:00+00:00         -0.00451785        -0.00595828   \n",
       "2011-02-03 00:00:00+00:00         -0.00816904         0.00034726   \n",
       "2011-02-04 00:00:00+00:00          0.02470898        -0.00191681   \n",
       "2011-02-07 00:00:00+00:00         -0.00507270         0.00780293   \n",
       "2011-02-08 00:00:00+00:00          0.00179527        -0.00607698   \n",
       "2011-02-09 00:00:00+00:00         -0.00179205        -0.00517814   \n",
       "2011-02-10 00:00:00+00:00          0.00391368         0.00787593   \n",
       "2011-02-11 00:00:00+00:00          0.01076538        -0.00456215   \n",
       "2011-02-14 00:00:00+00:00          0.00031846         0.02522953   \n",
       "2011-02-15 00:00:00+00:00         -0.00180403        -0.02285301   \n",
       "2011-02-16 00:00:00+00:00          0.00386265         0.00868160   \n",
       "2011-02-17 00:00:00+00:00          0.00031771         0.00227521   \n",
       "2011-02-18 00:00:00+00:00          0.00144687         0.00739258   \n",
       "...                                       ...                ...   \n",
       "2015-11-20 00:00:00+00:00          0.00041182        -0.00635194   \n",
       "2015-11-23 00:00:00+00:00         -0.00695468         0.00613134   \n",
       "2015-11-24 00:00:00+00:00          0.01295953         0.01993523   \n",
       "2015-11-25 00:00:00+00:00         -0.00445842        -0.00768963   \n",
       "2015-11-27 00:00:00+00:00          0.00447839        -0.00025651   \n",
       "2015-11-30 00:00:00+00:00          0.00934761         0.00529351   \n",
       "2015-12-01 00:00:00+00:00          0.01107484         0.00282087   \n",
       "2015-12-02 00:00:00+00:00         -0.02469292        -0.02857143   \n",
       "2015-12-03 00:00:00+00:00         -0.01081970        -0.01432669   \n",
       "2015-12-04 00:00:00+00:00          0.01032552         0.00573563   \n",
       "2015-12-07 00:00:00+00:00         -0.00879092        -0.02612215   \n",
       "2015-12-08 00:00:00+00:00         -0.00391018        -0.02825109   \n",
       "2015-12-09 00:00:00+00:00         -0.00993443         0.01338977   \n",
       "2015-12-10 00:00:00+00:00          0.00188278         0.00079770   \n",
       "2015-12-11 00:00:00+00:00         -0.01271252        -0.01783980   \n",
       "2015-12-14 00:00:00+00:00         -0.00094052         0.02273800   \n",
       "2015-12-15 00:00:00+00:00          0.01351594         0.04471023   \n",
       "2015-12-16 00:00:00+00:00          0.00053077        -0.00352152   \n",
       "2015-12-17 00:00:00+00:00         -0.01814726        -0.01503666   \n",
       "2015-12-18 00:00:00+00:00         -0.01231427        -0.00872355   \n",
       "2015-12-21 00:00:00+00:00          0.01677569        -0.00025549   \n",
       "2015-12-22 00:00:00+00:00          0.00273487         0.00505438   \n",
       "2015-12-23 00:00:00+00:00          0.00950124         0.03270236   \n",
       "2015-12-24 00:00:00+00:00         -0.00062007        -0.01072430   \n",
       "2015-12-28 00:00:00+00:00         -0.00106364        -0.00743906   \n",
       "2015-12-29 00:00:00+00:00          0.00796362         0.00533553   \n",
       "2015-12-30 00:00:00+00:00         -0.00706442        -0.01326109   \n",
       "2015-12-31 00:00:00+00:00         -0.01817456        -0.00205030   \n",
       "2016-01-04 00:00:00+00:00         -0.02492212        -0.00627612   \n",
       "2016-01-05 00:00:00+00:00          0.01486318         0.00851070   \n",
       "\n",
       "                           Equity(484 [XRAY])  Equity(485 [XRX])  \\\n",
       "2011-01-07 00:00:00+00:00         -0.00404361        -0.01395259   \n",
       "2011-01-10 00:00:00+00:00          0.01046585         0.00973303   \n",
       "2011-01-11 00:00:00+00:00          0.00735141         0.00611644   \n",
       "2011-01-12 00:00:00+00:00          0.02718194         0.00438630   \n",
       "2011-01-13 00:00:00+00:00          0.00054651        -0.01823475   \n",
       "2011-01-14 00:00:00+00:00         -0.00028748         0.02649446   \n",
       "2011-01-18 00:00:00+00:00          0.01158879         0.00604402   \n",
       "2011-01-19 00:00:00+00:00         -0.01989880        -0.01284667   \n",
       "2011-01-20 00:00:00+00:00         -0.00084112        -0.03379775   \n",
       "2011-01-21 00:00:00+00:00         -0.00304798        -0.00087153   \n",
       "2011-01-24 00:00:00+00:00          0.00165968         0.00804885   \n",
       "2011-01-25 00:00:00+00:00          0.00113369         0.01514317   \n",
       "2011-01-26 00:00:00+00:00          0.00055168        -0.07629122   \n",
       "2011-01-27 00:00:00+00:00          0.01639630         0.02466443   \n",
       "2011-01-28 00:00:00+00:00         -0.02187072        -0.02222859   \n",
       "2011-01-31 00:00:00+00:00         -0.00756028         0.00661503   \n",
       "2011-02-01 00:00:00+00:00          0.02479485         0.02449777   \n",
       "2011-02-02 00:00:00+00:00         -0.01038976        -0.00182689   \n",
       "2011-02-03 00:00:00+00:00          0.00855568         0.00459592   \n",
       "2011-02-04 00:00:00+00:00          0.00304817        -0.00550607   \n",
       "2011-02-07 00:00:00+00:00          0.00685187         0.00276828   \n",
       "2011-02-08 00:00:00+00:00          0.00518223        -0.00276064   \n",
       "2011-02-09 00:00:00+00:00         -0.01844088         0.00370461   \n",
       "2011-02-10 00:00:00+00:00          0.00551211        -0.00462381   \n",
       "2011-02-11 00:00:00+00:00          0.00714655         0.01202070   \n",
       "2011-02-14 00:00:00+00:00         -0.00544299         0.00547592   \n",
       "2011-02-15 00:00:00+00:00          0.00409742         0.00360404   \n",
       "2011-02-16 00:00:00+00:00          0.00028536         0.02709281   \n",
       "2011-02-17 00:00:00+00:00         -0.00191139         0.00000000   \n",
       "2011-02-18 00:00:00+00:00          0.01314812        -0.00438988   \n",
       "...                                       ...                ...   \n",
       "2015-11-20 00:00:00+00:00          0.00279330         0.00289932   \n",
       "2015-11-23 00:00:00+00:00          0.00734514         0.02769219   \n",
       "2015-11-24 00:00:00+00:00         -0.00956300        -0.01299182   \n",
       "2015-11-25 00:00:00+00:00         -0.00279190        -0.00191255   \n",
       "2015-11-27 00:00:00+00:00          0.00263307         0.00379485   \n",
       "2015-11-30 00:00:00+00:00         -0.00736321        -0.00752358   \n",
       "2015-12-01 00:00:00+00:00          0.02160044         0.01327550   \n",
       "2015-12-02 00:00:00+00:00          0.00757240        -0.02996241   \n",
       "2015-12-03 00:00:00+00:00          0.00273291        -0.00095925   \n",
       "2015-12-04 00:00:00+00:00          0.00749501         0.01159888   \n",
       "2015-12-07 00:00:00+00:00         -0.00190007        -0.02957591   \n",
       "2015-12-08 00:00:00+00:00         -0.01206744        -0.00492958   \n",
       "2015-12-09 00:00:00+00:00         -0.02106570        -0.00986868   \n",
       "2015-12-10 00:00:00+00:00         -0.00031695         0.01497042   \n",
       "2015-12-11 00:00:00+00:00         -0.01775464        -0.01279343   \n",
       "2015-12-14 00:00:00+00:00         -0.00183474        -0.01791305   \n",
       "2015-12-15 00:00:00+00:00          0.00435700         0.01622211   \n",
       "2015-12-16 00:00:00+00:00          0.00850674         0.02493746   \n",
       "2015-12-17 00:00:00+00:00         -0.00314212        -0.00778738   \n",
       "2015-12-18 00:00:00+00:00         -0.01045055        -0.00394377   \n",
       "2015-12-21 00:00:00+00:00          0.00703494         0.01477910   \n",
       "2015-12-22 00:00:00+00:00          0.01004736         0.03886271   \n",
       "2015-12-23 00:00:00+00:00          0.00758616         0.01119292   \n",
       "2015-12-24 00:00:00+00:00         -0.00212741         0.00555290   \n",
       "2015-12-28 00:00:00+00:00          0.00493013        -0.02113809   \n",
       "2015-12-29 00:00:00+00:00          0.01143615         0.01128297   \n",
       "2015-12-30 00:00:00+00:00         -0.00807866         0.00184720   \n",
       "2015-12-31 00:00:00+00:00         -0.00911914        -0.00837082   \n",
       "2016-01-04 00:00:00+00:00         -0.03271090        -0.03105128   \n",
       "2016-01-05 00:00:00+00:00          0.02039022        -0.00195732   \n",
       "\n",
       "                           Equity(486 [XYL])  Equity(487 [YUM])  \\\n",
       "2011-01-07 00:00:00+00:00         0.00000000         0.01245693   \n",
       "2011-01-10 00:00:00+00:00         0.00000000         0.00143979   \n",
       "2011-01-11 00:00:00+00:00         0.00000000        -0.00646974   \n",
       "2011-01-12 00:00:00+00:00         0.00000000         0.00263106   \n",
       "2011-01-13 00:00:00+00:00         0.00000000        -0.00508430   \n",
       "2011-01-14 00:00:00+00:00         0.00000000        -0.02166101   \n",
       "2011-01-18 00:00:00+00:00         0.00000000         0.02945339   \n",
       "2011-01-19 00:00:00+00:00         0.00000000         0.00081838   \n",
       "2011-01-20 00:00:00+00:00         0.00000000        -0.01318157   \n",
       "2011-01-21 00:00:00+00:00         0.00000000        -0.00759032   \n",
       "2011-01-24 00:00:00+00:00         0.00000000         0.00060118   \n",
       "2011-01-25 00:00:00+00:00         0.00000000        -0.00620848   \n",
       "2011-01-26 00:00:00+00:00         0.00000000        -0.00480301   \n",
       "2011-01-27 00:00:00+00:00         0.00000000        -0.00374620   \n",
       "2011-01-28 00:00:00+00:00         0.00000000        -0.02500085   \n",
       "2011-01-31 00:00:00+00:00         0.00000000         0.00774817   \n",
       "2011-02-01 00:00:00+00:00         0.00000000         0.01410150   \n",
       "2011-02-02 00:00:00+00:00         0.00000000         0.00656172   \n",
       "2011-02-03 00:00:00+00:00         0.00000000         0.03141255   \n",
       "2011-02-04 00:00:00+00:00         0.00000000         0.00140817   \n",
       "2011-02-07 00:00:00+00:00         0.00000000         0.00202754   \n",
       "2011-02-08 00:00:00+00:00         0.00000000         0.00385105   \n",
       "2011-02-09 00:00:00+00:00         0.00000000        -0.00182061   \n",
       "2011-02-10 00:00:00+00:00         0.00000000         0.00485295   \n",
       "2011-02-11 00:00:00+00:00         0.00000000         0.00061584   \n",
       "2011-02-14 00:00:00+00:00         0.00000000         0.01065725   \n",
       "2011-02-15 00:00:00+00:00         0.00000000         0.00852564   \n",
       "2011-02-16 00:00:00+00:00         0.00000000         0.00889849   \n",
       "2011-02-17 00:00:00+00:00         0.00000000         0.00390600   \n",
       "2011-02-18 00:00:00+00:00         0.00000000        -0.00411045   \n",
       "...                                      ...                ...   \n",
       "2015-11-20 00:00:00+00:00        -0.00449783         0.01505987   \n",
       "2015-11-23 00:00:00+00:00         0.00132239        -0.00096628   \n",
       "2015-11-24 00:00:00+00:00        -0.00187091        -0.00425172   \n",
       "2015-11-25 00:00:00+00:00         0.00482386         0.00289380   \n",
       "2015-11-27 00:00:00+00:00        -0.00213974         0.00510503   \n",
       "2015-11-30 00:00:00+00:00        -0.00692784        -0.00618325   \n",
       "2015-12-01 00:00:00+00:00         0.00858179         0.02716952   \n",
       "2015-12-02 00:00:00+00:00        -0.01833503         0.00631281   \n",
       "2015-12-03 00:00:00+00:00        -0.00567594        -0.02427203   \n",
       "2015-12-04 00:00:00+00:00         0.02477363         0.04115927   \n",
       "2015-12-07 00:00:00+00:00        -0.01964712         0.00353962   \n",
       "2015-12-08 00:00:00+00:00        -0.01707392        -0.01073476   \n",
       "2015-12-09 00:00:00+00:00        -0.00056952        -0.02367896   \n",
       "2015-12-10 00:00:00+00:00         0.01213779        -0.00825643   \n",
       "2015-12-11 00:00:00+00:00        -0.01306196        -0.02583602   \n",
       "2015-12-14 00:00:00+00:00         0.01158048         0.00490982   \n",
       "2015-12-15 00:00:00+00:00         0.00163542         0.01341047   \n",
       "2015-12-16 00:00:00+00:00         0.02071897         0.01280939   \n",
       "2015-12-17 00:00:00+00:00        -0.02669682        -0.01822419   \n",
       "2015-12-18 00:00:00+00:00        -0.01700150        -0.00499057   \n",
       "2015-12-21 00:00:00+00:00         0.00835952         0.02171387   \n",
       "2015-12-22 00:00:00+00:00         0.00997684        -0.00544780   \n",
       "2015-12-23 00:00:00+00:00         0.01723748         0.01534943   \n",
       "2015-12-24 00:00:00+00:00        -0.00161385        -0.00162043   \n",
       "2015-12-28 00:00:00+00:00        -0.00348374        -0.00217727   \n",
       "2015-12-29 00:00:00+00:00         0.00430697         0.00541538   \n",
       "2015-12-30 00:00:00+00:00        -0.00618212        -0.00578080   \n",
       "2015-12-31 00:00:00+00:00        -0.01003138        -0.01029925   \n",
       "2016-01-04 00:00:00+00:00        -0.01151995        -0.01148918   \n",
       "2016-01-05 00:00:00+00:00        -0.00028634        -0.00249493   \n",
       "\n",
       "                           Equity(488 [ZBH])  Equity(489 [ZION])  \\\n",
       "2011-01-07 00:00:00+00:00        -0.00018145         -0.01045802   \n",
       "2011-01-10 00:00:00+00:00         0.00778351         -0.01794496   \n",
       "2011-01-11 00:00:00+00:00         0.03567570          0.00746728   \n",
       "2011-01-12 00:00:00+00:00         0.01474083         -0.01190269   \n",
       "2011-01-13 00:00:00+00:00        -0.00466453         -0.00917796   \n",
       "2011-01-14 00:00:00+00:00         0.00594885          0.03317747   \n",
       "2011-01-18 00:00:00+00:00         0.00699753         -0.00853448   \n",
       "2011-01-19 00:00:00+00:00        -0.00409759         -0.01843318   \n",
       "2011-01-20 00:00:00+00:00        -0.00161165         -0.00797236   \n",
       "2011-01-21 00:00:00+00:00         0.00932467          0.02402000   \n",
       "2011-01-24 00:00:00+00:00        -0.01650140         -0.02302058   \n",
       "2011-01-25 00:00:00+00:00         0.01714176         -0.00883613   \n",
       "2011-01-26 00:00:00+00:00        -0.01952376         -0.01062584   \n",
       "2011-01-27 00:00:00+00:00         0.06875384          0.02016019   \n",
       "2011-01-28 00:00:00+00:00        -0.00847214         -0.01387340   \n",
       "2011-01-31 00:00:00+00:00         0.00990224          0.00637836   \n",
       "2011-02-01 00:00:00+00:00         0.01774607          0.03097047   \n",
       "2011-02-02 00:00:00+00:00         0.00516054         -0.00370596   \n",
       "2011-02-03 00:00:00+00:00        -0.00033292         -0.00039386   \n",
       "2011-02-04 00:00:00+00:00         0.00247147          0.01611067   \n",
       "2011-02-07 00:00:00+00:00        -0.01087565          0.02761741   \n",
       "2011-02-08 00:00:00+00:00        -0.00049496          0.00477967   \n",
       "2011-02-09 00:00:00+00:00        -0.00985108         -0.00475694   \n",
       "2011-02-10 00:00:00+00:00         0.01144950         -0.02649784   \n",
       "2011-02-11 00:00:00+00:00         0.00965987          0.01425557   \n",
       "2011-02-14 00:00:00+00:00         0.00248369         -0.01002123   \n",
       "2011-02-15 00:00:00+00:00        -0.00181453         -0.00446084   \n",
       "2011-02-16 00:00:00+00:00         0.01055741          0.00120638   \n",
       "2011-02-17 00:00:00+00:00         0.01532474         -0.00322747   \n",
       "2011-02-18 00:00:00+00:00         0.02378154         -0.01795968   \n",
       "...                                      ...                 ...   \n",
       "2015-11-20 00:00:00+00:00        -0.00317570          0.00000000   \n",
       "2015-11-23 00:00:00+00:00        -0.00858098         -0.00199203   \n",
       "2015-11-24 00:00:00+00:00        -0.00904325          0.00264987   \n",
       "2015-11-25 00:00:00+00:00        -0.00617420         -0.00030891   \n",
       "2015-11-27 00:00:00+00:00        -0.00286889          0.00501270   \n",
       "2015-11-30 00:00:00+00:00         0.00010131         -0.00433862   \n",
       "2015-12-01 00:00:00+00:00         0.01692683          0.01502831   \n",
       "2015-12-02 00:00:00+00:00        -0.00447256         -0.01544806   \n",
       "2015-12-03 00:00:00+00:00        -0.02836674         -0.01572478   \n",
       "2015-12-04 00:00:00+00:00         0.01197660          0.02445235   \n",
       "2015-12-07 00:00:00+00:00        -0.00138396         -0.04208519   \n",
       "2015-12-08 00:00:00+00:00        -0.00627720         -0.03181317   \n",
       "2015-12-09 00:00:00+00:00         0.00220474         -0.00748954   \n",
       "2015-12-10 00:00:00+00:00        -0.00029673          0.01475919   \n",
       "2015-12-11 00:00:00+00:00        -0.01011228         -0.02978165   \n",
       "2015-12-14 00:00:00+00:00         0.00535594         -0.01499098   \n",
       "2015-12-15 00:00:00+00:00         0.01578682          0.03562574   \n",
       "2015-12-16 00:00:00+00:00         0.00860603          0.01075467   \n",
       "2015-12-17 00:00:00+00:00        -0.01196571         -0.01596035   \n",
       "2015-12-18 00:00:00+00:00        -0.01738362         -0.03784484   \n",
       "2015-12-21 00:00:00+00:00         0.01284185          0.00227072   \n",
       "2015-12-22 00:00:00+00:00         0.01496575          0.01455341   \n",
       "2015-12-23 00:00:00+00:00         0.01021896          0.01877295   \n",
       "2015-12-24 00:00:00+00:00         0.00136401          0.00397518   \n",
       "2015-12-28 00:00:00+00:00        -0.00641306         -0.00503256   \n",
       "2015-12-29 00:00:00+00:00         0.00723499          0.00617376   \n",
       "2015-12-30 00:00:00+00:00        -0.00292090         -0.01223479   \n",
       "2015-12-31 00:00:00+00:00         0.00117577         -0.00621188   \n",
       "2016-01-04 00:00:00+00:00        -0.00760365         -0.02161389   \n",
       "2016-01-05 00:00:00+00:00         0.02081954         -0.01085325   \n",
       "\n",
       "                           Equity(490 [ZTS])  \n",
       "2011-01-07 00:00:00+00:00         0.00000000  \n",
       "2011-01-10 00:00:00+00:00         0.00000000  \n",
       "2011-01-11 00:00:00+00:00         0.00000000  \n",
       "2011-01-12 00:00:00+00:00         0.00000000  \n",
       "2011-01-13 00:00:00+00:00         0.00000000  \n",
       "2011-01-14 00:00:00+00:00         0.00000000  \n",
       "2011-01-18 00:00:00+00:00         0.00000000  \n",
       "2011-01-19 00:00:00+00:00         0.00000000  \n",
       "2011-01-20 00:00:00+00:00         0.00000000  \n",
       "2011-01-21 00:00:00+00:00         0.00000000  \n",
       "2011-01-24 00:00:00+00:00         0.00000000  \n",
       "2011-01-25 00:00:00+00:00         0.00000000  \n",
       "2011-01-26 00:00:00+00:00         0.00000000  \n",
       "2011-01-27 00:00:00+00:00         0.00000000  \n",
       "2011-01-28 00:00:00+00:00         0.00000000  \n",
       "2011-01-31 00:00:00+00:00         0.00000000  \n",
       "2011-02-01 00:00:00+00:00         0.00000000  \n",
       "2011-02-02 00:00:00+00:00         0.00000000  \n",
       "2011-02-03 00:00:00+00:00         0.00000000  \n",
       "2011-02-04 00:00:00+00:00         0.00000000  \n",
       "2011-02-07 00:00:00+00:00         0.00000000  \n",
       "2011-02-08 00:00:00+00:00         0.00000000  \n",
       "2011-02-09 00:00:00+00:00         0.00000000  \n",
       "2011-02-10 00:00:00+00:00         0.00000000  \n",
       "2011-02-11 00:00:00+00:00         0.00000000  \n",
       "2011-02-14 00:00:00+00:00         0.00000000  \n",
       "2011-02-15 00:00:00+00:00         0.00000000  \n",
       "2011-02-16 00:00:00+00:00         0.00000000  \n",
       "2011-02-17 00:00:00+00:00         0.00000000  \n",
       "2011-02-18 00:00:00+00:00         0.00000000  \n",
       "...                                      ...  \n",
       "2015-11-20 00:00:00+00:00         0.00894971  \n",
       "2015-11-23 00:00:00+00:00        -0.00760006  \n",
       "2015-11-24 00:00:00+00:00        -0.00065084  \n",
       "2015-11-25 00:00:00+00:00         0.00086836  \n",
       "2015-11-27 00:00:00+00:00         0.00234253  \n",
       "2015-11-30 00:00:00+00:00        -0.00807150  \n",
       "2015-12-01 00:00:00+00:00         0.00663191  \n",
       "2015-12-02 00:00:00+00:00        -0.01360986  \n",
       "2015-12-03 00:00:00+00:00        -0.02524442  \n",
       "2015-12-04 00:00:00+00:00         0.02788171  \n",
       "2015-12-07 00:00:00+00:00        -0.01184133  \n",
       "2015-12-08 00:00:00+00:00         0.00066573  \n",
       "2015-12-09 00:00:00+00:00        -0.01590047  \n",
       "2015-12-10 00:00:00+00:00         0.01969533  \n",
       "2015-12-11 00:00:00+00:00        -0.00585635  \n",
       "2015-12-14 00:00:00+00:00         0.01658331  \n",
       "2015-12-15 00:00:00+00:00         0.00815639  \n",
       "2015-12-16 00:00:00+00:00         0.00253774  \n",
       "2015-12-17 00:00:00+00:00        -0.00763722  \n",
       "2015-12-18 00:00:00+00:00        -0.00279062  \n",
       "2015-12-21 00:00:00+00:00         0.01589418  \n",
       "2015-12-22 00:00:00+00:00         0.00802720  \n",
       "2015-12-23 00:00:00+00:00         0.00544406  \n",
       "2015-12-24 00:00:00+00:00         0.00312135  \n",
       "2015-12-28 00:00:00+00:00        -0.00478388  \n",
       "2015-12-29 00:00:00+00:00         0.00899694  \n",
       "2015-12-30 00:00:00+00:00        -0.00145450  \n",
       "2015-12-31 00:00:00+00:00        -0.00705088  \n",
       "2016-01-04 00:00:00+00:00        -0.01356408  \n",
       "2016-01-05 00:00:00+00:00         0.01564723  \n",
       "\n",
       "[1256 rows x 490 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "five_year_returns = \\\n",
    "    get_pricing(\n",
    "        data_portal,\n",
    "        trading_calendar,\n",
    "        universe_tickers,\n",
    "        universe_end_date - pd.DateOffset(years=5),\n",
    "        universe_end_date)\\\n",
    "    .pct_change()[1:].fillna(0)\n",
    "\n",
    "five_year_returns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Statistical Risk Model\n",
    "It's time to build the risk model. You'll be creating a statistical risk model using PCA. So, the first thing is building the PCA model.\n",
    "## Fit PCA\n",
    "Implement `fit_pca` to fit a PCA model to the returns data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PCA(copy='full', iterated_power='auto', n_components=2, random_state=None,\n",
      "  svd_solver='auto', tol=0.0, whiten=False)\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "from sklearn.decomposition import PCA\n",
    "\n",
    "\n",
    "def fit_pca(returns, num_factor_exposures, svd_solver):\n",
    "    \"\"\"\n",
    "    Fit PCA model with returns.\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    returns : DataFrame\n",
    "        Returns for each ticker and date\n",
    "    num_factor_exposures : int\n",
    "        Number of factors for PCA\n",
    "    svd_solver: str\n",
    "        The solver to use for the PCA model\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    pca : PCA\n",
    "        Model fit to returns\n",
    "    \"\"\"\n",
    "#     print(returns)\n",
    "#     print(num_factor_exposures)\n",
    "#     print(svd_solver)\n",
    "    pca = PCA(num_factor_exposures, svd_solver).fit(returns)\n",
    "    # as long as you put the two arguments in order, it works, the first for n_components, and the second for svd_solver\n",
    "    print(pca)\n",
    "    return pca\n",
    "\n",
    "\n",
    "project_tests.test_fit_pca(fit_pca)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's see what the model looks like. First, we'll look at the PCA components."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PCA(copy='full', iterated_power='auto', n_components=20, random_state=None,\n",
      "  svd_solver='auto', tol=0.0, whiten=False)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[-0.04316847, -0.05874471, -0.03433256, ..., -0.03843904,\n",
       "        -0.06092493, -0.01367163],\n",
       "       [ 0.01955111,  0.19637679,  0.03451502, ...,  0.01749339,\n",
       "        -0.01044197,  0.01892192],\n",
       "       [-0.0099337 ,  0.0786876 ,  0.01133837, ..., -0.01575191,\n",
       "         0.01261759,  0.01867876],\n",
       "       ..., \n",
       "       [-0.01009196,  0.01570165,  0.04795064, ...,  0.04031331,\n",
       "         0.00388208,  0.03704506],\n",
       "       [ 0.00631111, -0.04607693,  0.05769756, ...,  0.00879184,\n",
       "        -0.02151701,  0.00793585],\n",
       "       [-0.00651501, -0.01415149,  0.08529023, ..., -0.01484402,\n",
       "         0.02384011,  0.01579262]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num_factor_exposures = 20\n",
    "pca = fit_pca(five_year_returns, num_factor_exposures, 'full')\n",
    "\n",
    "pca.components_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's also look at the PCA's percent of variance explained by each factor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Container object of 20 artists>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc88063e908>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(np.arange(num_factor_exposures), pca.explained_variance_ratio_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You will see that the first factor dominates. The precise definition of each factor in a latent model is unknown, however we can guess at the likely interpretation."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Factor Betas\n",
    "Implement `factor_betas` to get the factor betas from the PCA model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                          0           1          2\n",
      "Equity(0 [A])    0.00590170 -0.07759542 0.99696746\n",
      "Equity(1 [AAL]) -0.13077609  0.98836246 0.07769983\n",
      "Equity(2 [AAP])  0.99139436  0.13083807 0.00431461\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def factor_betas(pca, factor_beta_indices, factor_beta_columns):\n",
    "    \"\"\"\n",
    "    Get the factor betas from the PCA model.\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    pca : PCA\n",
    "        Model fit to returns\n",
    "    factor_beta_indices : 1 dimensional Ndarray\n",
    "        Factor beta indices\n",
    "    factor_beta_columns : 1 dimensional Ndarray\n",
    "        Factor beta columns\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    factor_betas : DataFrame\n",
    "        Factor betas\n",
    "    \"\"\"\n",
    "    assert len(factor_beta_indices.shape) == 1\n",
    "    assert len(factor_beta_columns.shape) == 1\n",
    "    \n",
    "#     print(pca)\n",
    "#     print(factor_beta_indices)\n",
    "#     print(factor_beta_columns)\n",
    "    r = pd.DataFrame(pca.components_.T, factor_beta_indices, factor_beta_columns)\n",
    "    print(r)\n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_factor_betas(factor_betas)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's view the factor betas from this model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            0           1           2           3   \\\n",
      "Equity(0 [A])      -0.04316847  0.01955111 -0.00993370  0.01054035   \n",
      "Equity(1 [AAL])    -0.05874471  0.19637679  0.07868760  0.08209550   \n",
      "Equity(2 [AAP])    -0.03433256  0.03451502  0.01133837 -0.02543653   \n",
      "Equity(3 [AAPL])   -0.03409988 -0.00139319  0.03946703 -0.01721336   \n",
      "Equity(4 [ABBV])   -0.01803099  0.02568151  0.00435185 -0.07078157   \n",
      "Equity(5 [ABC])    -0.02890016  0.03259161 -0.00742075 -0.03355188   \n",
      "Equity(6 [ABT])    -0.02905740  0.02977821 -0.02970868 -0.03574271   \n",
      "Equity(7 [ACN])    -0.04337745  0.00256907  0.00413231 -0.00349272   \n",
      "Equity(8 [ADBE])   -0.04730285  0.02661175  0.03057071 -0.02114663   \n",
      "Equity(9 [ADI])    -0.04712287 -0.00381150  0.05600848 -0.01553771   \n",
      "Equity(10 [ADM])   -0.04375945 -0.01130045 -0.03457005  0.00400569   \n",
      "Equity(11 [ADP])   -0.03648136  0.02528125 -0.01114830 -0.00940999   \n",
      "Equity(12 [ADS])   -0.04136654  0.01659887  0.01716323 -0.02418703   \n",
      "Equity(13 [ADSK])  -0.06028785  0.01995266  0.05164356  0.00105688   \n",
      "Equity(14 [AEE])   -0.02646901  0.02222316 -0.10715000 -0.03824478   \n",
      "Equity(15 [AEP])   -0.02263370  0.01880106 -0.10030312 -0.04210439   \n",
      "Equity(16 [AES])   -0.04557539 -0.01859286 -0.06960049 -0.02023065   \n",
      "Equity(17 [AET])   -0.04072498  0.02731997 -0.00507230 -0.02802245   \n",
      "Equity(18 [AFL])   -0.05336864  0.00134653 -0.02782497  0.06689006   \n",
      "Equity(19 [AGN])   -0.03534102  0.04465091  0.02264082 -0.09556032   \n",
      "Equity(20 [AIG])   -0.05982324  0.00588515 -0.01162876  0.06668341   \n",
      "Equity(21 [AIV])   -0.04111735  0.03100207 -0.10211708 -0.00919329   \n",
      "Equity(22 [AIZ])   -0.04150874  0.01695771 -0.03297298  0.04770325   \n",
      "Equity(23 [AJG])   -0.03351812  0.01723113 -0.02538600  0.01303828   \n",
      "Equity(24 [AKAM])  -0.05587884  0.00798597  0.06670049 -0.00705487   \n",
      "Equity(25 [ALB])   -0.05982022 -0.03657576  0.01798660  0.01363551   \n",
      "Equity(26 [ALGN])  -0.05959262  0.01420686  0.04030663 -0.00223707   \n",
      "Equity(27 [ALK])   -0.04887994  0.12134700  0.03971833  0.02356253   \n",
      "Equity(28 [ALL])   -0.03960459  0.01388579 -0.04298738  0.04705241   \n",
      "Equity(29 [ALLE])  -0.01215236  0.01485340  0.01783513 -0.02151473   \n",
      "...                        ...         ...         ...         ...   \n",
      "Equity(460 [VRSN]) -0.03899324  0.01109333  0.04065348 -0.01351031   \n",
      "Equity(461 [VRTX]) -0.04909379  0.09821506  0.07490356 -0.22874283   \n",
      "Equity(462 [VTR])  -0.03291326  0.03068907 -0.12174008 -0.03757315   \n",
      "Equity(463 [VZ])   -0.07033190  0.00068427 -0.01610415  0.05981359   \n",
      "Equity(464 [WAT])  -0.04787963  0.01976102  0.00630831 -0.01309637   \n",
      "Equity(465 [WBA])  -0.03065220  0.03421533 -0.01027999 -0.04006666   \n",
      "Equity(466 [WDC])  -0.05340806 -0.00776436  0.06117299 -0.01397329   \n",
      "Equity(467 [WEC])  -0.02279115  0.02557593 -0.10491697 -0.04691483   \n",
      "Equity(468 [WFC])  -0.05131308  0.01109305 -0.03096455  0.08514610   \n",
      "Equity(469 [WHR])  -0.05507142  0.03637282 -0.00100605  0.00590475   \n",
      "Equity(471 [WM])   -0.03151644  0.01496675 -0.03234350 -0.00111925   \n",
      "Equity(472 [WMB])  -0.05476156 -0.08924997 -0.02426236 -0.05723848   \n",
      "Equity(473 [WMT])  -0.01988671  0.03467415 -0.04017191 -0.00769656   \n",
      "Equity(474 [WRK])  -0.00563001 -0.00526226  0.00630658 -0.00994054   \n",
      "Equity(475 [WU])   -0.04059879  0.00365919  0.01271943  0.00231518   \n",
      "Equity(476 [WY])   -0.04860757  0.01225382 -0.04997088  0.00551800   \n",
      "Equity(477 [WYN])  -0.05535480  0.02642294  0.00304198 -0.00979657   \n",
      "Equity(478 [WYNN]) -0.06224023 -0.03777009  0.05699242 -0.04984507   \n",
      "Equity(479 [XEC])  -0.06269690 -0.17159839  0.01127251 -0.03690677   \n",
      "Equity(480 [XEL])  -0.02213358  0.02037290 -0.09965907 -0.04339566   \n",
      "Equity(481 [XL])   -0.04533940  0.01070557 -0.03511721  0.04642121   \n",
      "Equity(482 [XLNX]) -0.04210479 -0.00382104  0.05760795 -0.01871989   \n",
      "Equity(483 [XOM])  -0.03773468 -0.05378131 -0.03367516 -0.01036477   \n",
      "Equity(484 [XRAY]) -0.04417162  0.01778874 -0.00062232  0.00814416   \n",
      "Equity(485 [XRX])  -0.05418096 -0.00344402  0.01002127  0.02970039   \n",
      "Equity(486 [XYL])  -0.02818794 -0.01716654  0.03265041 -0.01947782   \n",
      "Equity(487 [YUM])  -0.03630261  0.02726147  0.00226078 -0.02614446   \n",
      "Equity(488 [ZBH])  -0.03843904  0.01749339 -0.01575191 -0.01540767   \n",
      "Equity(489 [ZION]) -0.06092493 -0.01044197  0.01261759  0.13419142   \n",
      "Equity(490 [ZTS])  -0.01367163  0.01892192  0.01867876 -0.04878703   \n",
      "\n",
      "                            4           5           6           7   \\\n",
      "Equity(0 [A])      -0.01819985  0.01073764  0.00112177  0.03974072   \n",
      "Equity(1 [AAL])     0.34847488 -0.13808183  0.07129350  0.10524542   \n",
      "Equity(2 [AAP])    -0.00816998 -0.01319151 -0.06095808  0.00654306   \n",
      "Equity(3 [AAPL])   -0.03047267 -0.01756803  0.02323525  0.01144347   \n",
      "Equity(4 [ABBV])    0.01319952  0.05428235 -0.01567069  0.04047295   \n",
      "Equity(5 [ABC])    -0.01152096  0.02648412  0.01084806 -0.00571080   \n",
      "Equity(6 [ABT])    -0.01157427  0.06020054 -0.02003896  0.04098347   \n",
      "Equity(7 [ACN])    -0.05430895  0.00537768  0.00277692  0.03044656   \n",
      "Equity(8 [ADBE])   -0.04838637 -0.00708309  0.00743084  0.00750241   \n",
      "Equity(9 [ADI])    -0.06946368 -0.00560496  0.10070937  0.06305665   \n",
      "Equity(10 [ADM])   -0.00645260  0.01746974 -0.00145658  0.04179348   \n",
      "Equity(11 [ADP])   -0.03357747  0.02887549 -0.00509644  0.04466659   \n",
      "Equity(12 [ADS])   -0.00389623  0.00098179 -0.02299730  0.01316862   \n",
      "Equity(13 [ADSK])  -0.06889048 -0.04892382  0.04706101 -0.02743203   \n",
      "Equity(14 [AEE])   -0.00157829 -0.02310360  0.02412562  0.04418713   \n",
      "Equity(15 [AEP])    0.00205689 -0.03150356  0.02496800  0.05473636   \n",
      "Equity(16 [AES])    0.01303813 -0.01748349  0.02894893  0.03054182   \n",
      "Equity(17 [AET])   -0.00180926  0.06385466  0.00043775 -0.03712771   \n",
      "Equity(18 [AFL])   -0.01354929  0.04111617 -0.00400456 -0.01389035   \n",
      "Equity(19 [AGN])    0.02867984  0.06515341 -0.02262966 -0.01928881   \n",
      "Equity(20 [AIG])    0.01385522  0.04009833 -0.01874201 -0.02395295   \n",
      "Equity(21 [AIV])    0.01055478 -0.04739106  0.05244775 -0.09495966   \n",
      "Equity(22 [AIZ])   -0.00003356  0.04220339 -0.00296063  0.01715736   \n",
      "Equity(23 [AJG])   -0.00670142  0.02117802 -0.01016105  0.00116861   \n",
      "Equity(24 [AKAM])  -0.05149317 -0.04836921  0.02744500 -0.00621882   \n",
      "Equity(25 [ALB])   -0.01736151 -0.03080528  0.04203556  0.00602659   \n",
      "Equity(26 [ALGN])   0.00379440  0.03560304  0.04026342 -0.09390897   \n",
      "Equity(27 [ALK])    0.12647955 -0.05703493  0.02167528  0.06426832   \n",
      "Equity(28 [ALL])   -0.00072861  0.03487481 -0.01156125  0.00876464   \n",
      "Equity(29 [ALLE])   0.00049760  0.02208186 -0.01397111  0.04559501   \n",
      "...                        ...         ...         ...         ...   \n",
      "Equity(460 [VRSN]) -0.03907012  0.00844579  0.01231571 -0.02029448   \n",
      "Equity(461 [VRTX])  0.18285899  0.29795861  0.16782869 -0.08586009   \n",
      "Equity(462 [VTR])  -0.00091452 -0.05384970  0.03087987 -0.06663601   \n",
      "Equity(463 [VZ])   -0.01922504  0.03299010 -0.00089756 -0.00204495   \n",
      "Equity(464 [WAT])  -0.02786496  0.02969204  0.01136657 -0.01290647   \n",
      "Equity(465 [WBA])  -0.01725513  0.02037521 -0.00924148  0.04976091   \n",
      "Equity(466 [WDC])  -0.02898334 -0.05152195  0.10653754  0.00361593   \n",
      "Equity(467 [WEC])  -0.00109182 -0.02887381  0.01886363  0.05105385   \n",
      "Equity(468 [WFC])   0.00399854  0.06169066 -0.01917657 -0.00979766   \n",
      "Equity(469 [WHR])   0.01093083 -0.06423518 -0.05592622  0.02532514   \n",
      "Equity(471 [WM])   -0.02960382  0.00379336 -0.00185484  0.01332233   \n",
      "Equity(472 [WMB])   0.07886918 -0.01255106 -0.03518221  0.02303604   \n",
      "Equity(473 [WMT])  -0.01460187  0.00726739 -0.02276118  0.03830017   \n",
      "Equity(474 [WRK])   0.00615540  0.01085324  0.00187943  0.01707617   \n",
      "Equity(475 [WU])   -0.01726751  0.03142876  0.02343821  0.01430728   \n",
      "Equity(476 [WY])   -0.00278532 -0.03035182  0.01706688 -0.04454498   \n",
      "Equity(477 [WYN])  -0.00616626 -0.02917106 -0.01685758 -0.03459403   \n",
      "Equity(478 [WYNN])  0.00327672 -0.05450320 -0.01462037 -0.13652647   \n",
      "Equity(479 [XEC])   0.07211065  0.04236674 -0.01733099 -0.00897245   \n",
      "Equity(480 [XEL])  -0.00356943 -0.02492177  0.01492049  0.05104677   \n",
      "Equity(481 [XL])   -0.00584041  0.01174925  0.01268950 -0.02089065   \n",
      "Equity(482 [XLNX]) -0.06972843 -0.01255928  0.09049395  0.05366728   \n",
      "Equity(483 [XOM])  -0.00395117  0.02952905 -0.00565158  0.04906249   \n",
      "Equity(484 [XRAY]) -0.02933623  0.01859110  0.01513935 -0.00293141   \n",
      "Equity(485 [XRX])  -0.04632628  0.01414044  0.01545251  0.03333709   \n",
      "Equity(486 [XYL])  -0.00285062  0.00871286 -0.01890190  0.06660934   \n",
      "Equity(487 [YUM])  -0.01418715  0.00133025 -0.04157802  0.00019894   \n",
      "Equity(488 [ZBH])  -0.00162146  0.04604261  0.00107874 -0.00766365   \n",
      "Equity(489 [ZION])  0.02396310  0.09232402 -0.04478132 -0.03030916   \n",
      "Equity(490 [ZTS])   0.01263795  0.04832049 -0.00205428  0.01615079   \n",
      "\n",
      "                            8           9           10          11  \\\n",
      "Equity(0 [A])      -0.01375579  0.01287564 -0.02384754 -0.00149654   \n",
      "Equity(1 [AAL])    -0.04587567 -0.08549499  0.00322218  0.10550489   \n",
      "Equity(2 [AAP])    -0.03261635 -0.01342214  0.02901137  0.03837749   \n",
      "Equity(3 [AAPL])   -0.02655168 -0.00768524  0.02688303  0.00705191   \n",
      "Equity(4 [ABBV])   -0.01250395 -0.03521164 -0.05132587 -0.04068715   \n",
      "Equity(5 [ABC])     0.01354572 -0.02969061 -0.03158625  0.01717923   \n",
      "Equity(6 [ABT])    -0.01802725 -0.00617438 -0.03158237 -0.02319143   \n",
      "Equity(7 [ACN])    -0.01880501 -0.00178051 -0.03539564 -0.01105793   \n",
      "Equity(8 [ADBE])    0.01484313 -0.00155567 -0.01231848 -0.00685361   \n",
      "Equity(9 [ADI])     0.00162851  0.01915833  0.01085946  0.00351036   \n",
      "Equity(10 [ADM])   -0.00478565 -0.01859306  0.00419106 -0.00952956   \n",
      "Equity(11 [ADP])   -0.00673989  0.00340349 -0.00495277  0.00187489   \n",
      "Equity(12 [ADS])   -0.02791268  0.00654326  0.00632701 -0.00342705   \n",
      "Equity(13 [ADSK])   0.00281949  0.00519804 -0.01130461 -0.00124711   \n",
      "Equity(14 [AEE])    0.00039877 -0.02601425  0.02324394 -0.05447119   \n",
      "Equity(15 [AEP])    0.00164053 -0.02267575  0.01764113 -0.04783703   \n",
      "Equity(16 [AES])   -0.01234187 -0.02634054  0.00389523 -0.05876228   \n",
      "Equity(17 [AET])    0.00998663 -0.09653393 -0.04571296  0.04510895   \n",
      "Equity(18 [AFL])    0.01361193  0.00340342 -0.00990063 -0.00929392   \n",
      "Equity(19 [AGN])   -0.02384119 -0.02586432 -0.02641574 -0.00721757   \n",
      "Equity(20 [AIG])    0.01456997  0.02059392 -0.00590146 -0.01871433   \n",
      "Equity(21 [AIV])    0.04962104  0.00393936  0.02494902  0.02542252   \n",
      "Equity(22 [AIZ])    0.02194816 -0.01976910  0.00850007 -0.00200901   \n",
      "Equity(23 [AJG])    0.00769209  0.00436542 -0.00824245  0.01517760   \n",
      "Equity(24 [AKAM])   0.02663756 -0.01162011  0.00102594 -0.06362917   \n",
      "Equity(25 [ALB])   -0.02056881  0.03716029 -0.00124284  0.01925145   \n",
      "Equity(26 [ALGN])   0.03526819  0.01022778 -0.07460127  0.02151785   \n",
      "Equity(27 [ALK])   -0.01673719 -0.02363509 -0.00069417  0.06373686   \n",
      "Equity(28 [ALL])   -0.00076414 -0.00132343  0.01284531 -0.00675485   \n",
      "Equity(29 [ALLE])  -0.01576268  0.00228715 -0.01535328 -0.02635498   \n",
      "...                        ...         ...         ...         ...   \n",
      "Equity(460 [VRSN]) -0.01425848 -0.00827544 -0.02486401  0.02083316   \n",
      "Equity(461 [VRTX])  0.17243108  0.26887825  0.58246216 -0.03513102   \n",
      "Equity(462 [VTR])   0.04681692  0.00815671 -0.00369202  0.02305367   \n",
      "Equity(463 [VZ])    0.03346171 -0.00820226  0.01312502 -0.01339633   \n",
      "Equity(464 [WAT])   0.02280008  0.00205507 -0.05579844  0.02565708   \n",
      "Equity(465 [WBA])  -0.02417771 -0.02909557 -0.01700641 -0.00987924   \n",
      "Equity(466 [WDC])  -0.00174693 -0.01746300  0.03052392 -0.00871879   \n",
      "Equity(467 [WEC])   0.01033637 -0.02586146  0.02237280 -0.04426359   \n",
      "Equity(468 [WFC])   0.02013085  0.00923565  0.02751783 -0.01820251   \n",
      "Equity(469 [WHR])  -0.04218988  0.13437383 -0.01639614  0.01577426   \n",
      "Equity(471 [WM])   -0.00243167 -0.00944590  0.00285446  0.00919116   \n",
      "Equity(472 [WMB])  -0.03169316 -0.02925053  0.00880337  0.01967529   \n",
      "Equity(473 [WMT])  -0.01129067 -0.00759721  0.00867462  0.00365705   \n",
      "Equity(474 [WRK])  -0.00686116 -0.00780335  0.00361935 -0.02965762   \n",
      "Equity(475 [WU])   -0.02395318 -0.00790029 -0.02324971 -0.00988128   \n",
      "Equity(476 [WY])    0.02068487  0.04951635 -0.02159511 -0.01857818   \n",
      "Equity(477 [WYN])  -0.04849964 -0.00712854  0.02187146  0.02073136   \n",
      "Equity(478 [WYNN]) -0.10365867 -0.13173507  0.08163567 -0.21150343   \n",
      "Equity(479 [XEC])  -0.00112501 -0.04073968  0.00907670  0.02197788   \n",
      "Equity(480 [XEL])  -0.00024986 -0.02454346  0.01833627 -0.05341283   \n",
      "Equity(481 [XL])    0.01108491 -0.00002951  0.00649219  0.00964890   \n",
      "Equity(482 [XLNX])  0.00001940  0.00962152  0.01447871  0.00158716   \n",
      "Equity(483 [XOM])   0.00088748 -0.00313407 -0.00735458 -0.01169428   \n",
      "Equity(484 [XRAY]) -0.00639220 -0.00961472 -0.01878956  0.00117861   \n",
      "Equity(485 [XRX])  -0.00135931 -0.03201206 -0.00734704 -0.01939525   \n",
      "Equity(486 [XYL])  -0.02402818  0.03615542 -0.02489678 -0.03952974   \n",
      "Equity(487 [YUM])  -0.03044394 -0.02775688  0.01271447  0.00271408   \n",
      "Equity(488 [ZBH])   0.00943143 -0.01277863 -0.06644996 -0.01100012   \n",
      "Equity(489 [ZION])  0.03197336 -0.01090927  0.04084895 -0.01636158   \n",
      "Equity(490 [ZTS])  -0.01921110 -0.03073887 -0.04023624 -0.03107603   \n",
      "\n",
      "                            12          13          14          15  \\\n",
      "Equity(0 [A])       0.02121142  0.03473276 -0.03061362  0.03345186   \n",
      "Equity(1 [AAL])     0.06748921 -0.04415964 -0.02178161  0.01567381   \n",
      "Equity(2 [AAP])    -0.05006282 -0.00488237 -0.02132017  0.03016017   \n",
      "Equity(3 [AAPL])    0.00529323  0.01265877  0.05178885 -0.07356573   \n",
      "Equity(4 [ABBV])   -0.05090663 -0.01873979 -0.01149224 -0.04213666   \n",
      "Equity(5 [ABC])    -0.00314009  0.02642881  0.00800301  0.00834448   \n",
      "Equity(6 [ABT])    -0.01415907 -0.00040762 -0.01895333  0.01377189   \n",
      "Equity(7 [ACN])     0.02637767 -0.01248730  0.00269523  0.01779118   \n",
      "Equity(8 [ADBE])    0.03507154 -0.04370220  0.00926058 -0.00451387   \n",
      "Equity(9 [ADI])    -0.05447743 -0.04206121  0.00068269 -0.04961729   \n",
      "Equity(10 [ADM])   -0.01348503  0.01732993  0.00984216  0.02389138   \n",
      "Equity(11 [ADP])   -0.01034098 -0.00603492 -0.00343086 -0.00251332   \n",
      "Equity(12 [ADS])    0.01588025 -0.02303402  0.01772651  0.00312095   \n",
      "Equity(13 [ADSK])   0.04049696 -0.03307856  0.01896776  0.02300794   \n",
      "Equity(14 [AEE])    0.00727577 -0.00898009  0.02849351  0.02625939   \n",
      "Equity(15 [AEP])   -0.01348955 -0.00613214  0.03470989  0.02729481   \n",
      "Equity(16 [AES])   -0.01470544  0.01031992  0.04757450  0.00921931   \n",
      "Equity(17 [AET])   -0.08452010  0.06459938 -0.07278192  0.00873776   \n",
      "Equity(18 [AFL])    0.01344626 -0.00683515  0.00052534  0.00044048   \n",
      "Equity(19 [AGN])   -0.01425313  0.01705316  0.00875420  0.01851321   \n",
      "Equity(20 [AIG])   -0.00572274 -0.02829507  0.03209348 -0.01045613   \n",
      "Equity(21 [AIV])    0.02085436 -0.04196728 -0.02049296 -0.03746101   \n",
      "Equity(22 [AIZ])   -0.02140440 -0.00999084  0.02916537  0.01098524   \n",
      "Equity(23 [AJG])   -0.00139564 -0.00791261 -0.00515837 -0.00153118   \n",
      "Equity(24 [AKAM])  -0.07364306  0.00252926  0.12394521  0.13798635   \n",
      "Equity(25 [ALB])    0.03966397  0.09132582 -0.06629776 -0.01452511   \n",
      "Equity(26 [ALGN])   0.11040929  0.07188677 -0.05715082 -0.07080753   \n",
      "Equity(27 [ALK])    0.00105735  0.00617074  0.01425294  0.02200355   \n",
      "Equity(28 [ALL])   -0.01020924 -0.00905214  0.02515899 -0.00495540   \n",
      "Equity(29 [ALLE])  -0.00614175 -0.04124249 -0.00833594 -0.01916313   \n",
      "...                        ...         ...         ...         ...   \n",
      "Equity(460 [VRSN])  0.00109034  0.01375702  0.02222061  0.03581243   \n",
      "Equity(461 [VRTX]) -0.12605830  0.36186726 -0.14247243 -0.10293613   \n",
      "Equity(462 [VTR])   0.02490274 -0.03305801 -0.01335867 -0.02071862   \n",
      "Equity(463 [VZ])    0.00422768 -0.00896355  0.00608561 -0.01704633   \n",
      "Equity(464 [WAT])   0.02276935  0.01129024 -0.03670103  0.03038893   \n",
      "Equity(465 [WBA])  -0.02952565 -0.00838890 -0.02429464  0.01784314   \n",
      "Equity(466 [WDC])  -0.11251380  0.02958820  0.13568735  0.17143039   \n",
      "Equity(467 [WEC])   0.00092207 -0.01730092  0.02238761  0.01457791   \n",
      "Equity(468 [WFC])  -0.00862624 -0.02237534  0.02426574  0.00327885   \n",
      "Equity(469 [WHR])  -0.05529682  0.04102912  0.04136107  0.02998499   \n",
      "Equity(471 [WM])   -0.00711037  0.03206951 -0.01152127  0.03659853   \n",
      "Equity(472 [WMB])  -0.01092052 -0.00323985  0.03821428 -0.02458367   \n",
      "Equity(473 [WMT])  -0.04322062  0.02467927  0.01322268  0.01162737   \n",
      "Equity(474 [WRK])  -0.02063825  0.00904419  0.00185310 -0.01843328   \n",
      "Equity(475 [WU])   -0.00295607 -0.02107737  0.00544991 -0.03600627   \n",
      "Equity(476 [WY])   -0.00272399  0.02537159 -0.01487972 -0.02650855   \n",
      "Equity(477 [WYN])   0.01040326  0.02075219  0.01124852  0.01453986   \n",
      "Equity(478 [WYNN])  0.05868331  0.06970614 -0.05196868  0.00387242   \n",
      "Equity(479 [XEC])  -0.00235914 -0.10413293 -0.05659851  0.00698281   \n",
      "Equity(480 [XEL])  -0.00094514 -0.00603820  0.02190597  0.01882630   \n",
      "Equity(481 [XL])    0.00150881 -0.00043507  0.00761630  0.01980740   \n",
      "Equity(482 [XLNX]) -0.03580623 -0.04231896  0.00181517 -0.03196622   \n",
      "Equity(483 [XOM])  -0.01043934  0.01412282  0.00294557  0.00162170   \n",
      "Equity(484 [XRAY])  0.01143921  0.02296582 -0.02793926  0.01121629   \n",
      "Equity(485 [XRX])  -0.03311336  0.01935188 -0.01054766 -0.01290216   \n",
      "Equity(486 [XYL])  -0.00893752 -0.04100900 -0.05929686 -0.02252246   \n",
      "Equity(487 [YUM])  -0.01200272  0.00932624 -0.00005225 -0.00468941   \n",
      "Equity(488 [ZBH])  -0.02664681  0.01836548 -0.04714543  0.01374424   \n",
      "Equity(489 [ZION]) -0.01118895 -0.03544956  0.00573891 -0.00389368   \n",
      "Equity(490 [ZTS])  -0.05614105 -0.01543526  0.00095279 -0.02374917   \n",
      "\n",
      "                            16          17          18          19  \n",
      "Equity(0 [A])      -0.01217392 -0.01009196  0.00631111 -0.00651501  \n",
      "Equity(1 [AAL])    -0.03204526  0.01570165 -0.04607693 -0.01415149  \n",
      "Equity(2 [AAP])    -0.01145684  0.04795064  0.05769756  0.08529023  \n",
      "Equity(3 [AAPL])   -0.03228226  0.09406169 -0.00988035  0.04455273  \n",
      "Equity(4 [ABBV])    0.01814236  0.04457503  0.01684312  0.06711364  \n",
      "Equity(5 [ABC])    -0.01875213 -0.01385140  0.00993866 -0.02800522  \n",
      "Equity(6 [ABT])    -0.03944285  0.01212353  0.01796965  0.00391765  \n",
      "Equity(7 [ACN])    -0.00435989 -0.00927531 -0.01499190 -0.03729018  \n",
      "Equity(8 [ADBE])    0.01929702 -0.03490402 -0.00095678 -0.04831866  \n",
      "Equity(9 [ADI])     0.00679634  0.04489691  0.01736766  0.00956659  \n",
      "Equity(10 [ADM])   -0.02011735 -0.00202790  0.00185389 -0.00812939  \n",
      "Equity(11 [ADP])   -0.00376246  0.00696626  0.00618101 -0.02328252  \n",
      "Equity(12 [ADS])   -0.01220245 -0.02474724 -0.01935921  0.02634492  \n",
      "Equity(13 [ADSK])   0.05413420 -0.06374657 -0.03730318 -0.02989322  \n",
      "Equity(14 [AEE])    0.03526974 -0.00824192 -0.03313521 -0.03297992  \n",
      "Equity(15 [AEP])    0.03984473  0.00476357 -0.01668101 -0.01586625  \n",
      "Equity(16 [AES])    0.00953939 -0.02372752 -0.05813816 -0.01956474  \n",
      "Equity(17 [AET])    0.01549979  0.00749589  0.00340799 -0.04664053  \n",
      "Equity(18 [AFL])    0.00044783  0.00338429  0.01684353 -0.03281822  \n",
      "Equity(19 [AGN])   -0.02064573  0.02339983 -0.02085429  0.01701517  \n",
      "Equity(20 [AIG])   -0.00962788 -0.05113832 -0.01506476 -0.00436047  \n",
      "Equity(21 [AIV])   -0.01450691  0.02374203  0.04525892  0.06318124  \n",
      "Equity(22 [AIZ])    0.00853705 -0.01306887  0.00099193  0.00654670  \n",
      "Equity(23 [AJG])   -0.00446795 -0.01399511 -0.00468465  0.01136640  \n",
      "Equity(24 [AKAM])   0.01092964 -0.00493021 -0.01019312  0.05572339  \n",
      "Equity(25 [ALB])   -0.04443369 -0.02957625 -0.03315314  0.04803426  \n",
      "Equity(26 [ALGN])   0.04694717  0.01636119 -0.02588599  0.01263746  \n",
      "Equity(27 [ALK])    0.04102878  0.01167443  0.05125948 -0.03906276  \n",
      "Equity(28 [ALL])   -0.00061372 -0.00042675  0.00165531 -0.00705429  \n",
      "Equity(29 [ALLE])  -0.00932486  0.03663948  0.00701798  0.03355151  \n",
      "...                        ...         ...         ...         ...  \n",
      "Equity(460 [VRSN]) -0.00885366 -0.00359890 -0.02729625  0.00271635  \n",
      "Equity(461 [VRTX])  0.15443334  0.00431922  0.05188559 -0.09783374  \n",
      "Equity(462 [VTR])  -0.01954732 -0.00673414  0.04199869  0.02970671  \n",
      "Equity(463 [VZ])    0.00259388 -0.03296249 -0.03614266 -0.02091311  \n",
      "Equity(464 [WAT])  -0.00919974  0.04816862 -0.01481828 -0.03010232  \n",
      "Equity(465 [WBA])   0.02999816  0.02996985  0.01267287  0.00747609  \n",
      "Equity(466 [WDC])   0.10840725 -0.22910643 -0.05503372  0.26692166  \n",
      "Equity(467 [WEC])   0.04751704 -0.01035507 -0.01679387 -0.01901844  \n",
      "Equity(468 [WFC])  -0.00421611  0.00340445 -0.02556188  0.01076139  \n",
      "Equity(469 [WHR])   0.04759629  0.02259315  0.01328537  0.01088077  \n",
      "Equity(471 [WM])    0.01800341 -0.02180578  0.02329823  0.00863871  \n",
      "Equity(472 [WMB])  -0.02991669 -0.02019306 -0.10291795 -0.01731531  \n",
      "Equity(473 [WMT])  -0.02496203  0.00434721  0.00800293  0.01167021  \n",
      "Equity(474 [WRK])  -0.01246073  0.02326707 -0.02083906  0.04109270  \n",
      "Equity(475 [WU])   -0.00638113 -0.03022320  0.00912255 -0.04796792  \n",
      "Equity(476 [WY])   -0.02322527  0.00854381  0.01729339 -0.00424631  \n",
      "Equity(477 [WYN])  -0.00238598 -0.02333953 -0.03813679 -0.01729965  \n",
      "Equity(478 [WYNN]) -0.04243512  0.14584458 -0.02160250  0.02784411  \n",
      "Equity(479 [XEC])   0.06507502 -0.03724361  0.09458562 -0.06355067  \n",
      "Equity(480 [XEL])   0.04666424 -0.00903213 -0.01793248 -0.02187933  \n",
      "Equity(481 [XL])   -0.00239532  0.00439183  0.00478730 -0.02990849  \n",
      "Equity(482 [XLNX])  0.03741288  0.01574910  0.01153676 -0.00356961  \n",
      "Equity(483 [XOM])  -0.00342800  0.00020090  0.01687403  0.01099400  \n",
      "Equity(484 [XRAY])  0.01919676  0.00876588  0.00642508 -0.04632015  \n",
      "Equity(485 [XRX])   0.00201605 -0.04985274  0.01793994  0.00479490  \n",
      "Equity(486 [XYL])   0.00386450  0.05219156 -0.00186580  0.05441990  \n",
      "Equity(487 [YUM])  -0.01662647  0.02205328 -0.01199279  0.00115887  \n",
      "Equity(488 [ZBH])   0.01186193  0.04031331  0.00879184 -0.01484402  \n",
      "Equity(489 [ZION])  0.00647629  0.00388208 -0.02151701  0.02384011  \n",
      "Equity(490 [ZTS])  -0.01037676  0.03704506  0.00793585  0.01579262  \n",
      "\n",
      "[490 rows x 20 columns]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "      <th>14</th>\n",
       "      <th>15</th>\n",
       "      <th>16</th>\n",
       "      <th>17</th>\n",
       "      <th>18</th>\n",
       "      <th>19</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>-0.04316847</td>\n",
       "      <td>0.01955111</td>\n",
       "      <td>-0.00993370</td>\n",
       "      <td>0.01054035</td>\n",
       "      <td>-0.01819985</td>\n",
       "      <td>0.01073764</td>\n",
       "      <td>0.00112177</td>\n",
       "      <td>0.03974072</td>\n",
       "      <td>-0.01375579</td>\n",
       "      <td>0.01287564</td>\n",
       "      <td>-0.02384754</td>\n",
       "      <td>-0.00149654</td>\n",
       "      <td>0.02121142</td>\n",
       "      <td>0.03473276</td>\n",
       "      <td>-0.03061362</td>\n",
       "      <td>0.03345186</td>\n",
       "      <td>-0.01217392</td>\n",
       "      <td>-0.01009196</td>\n",
       "      <td>0.00631111</td>\n",
       "      <td>-0.00651501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>-0.05874471</td>\n",
       "      <td>0.19637679</td>\n",
       "      <td>0.07868760</td>\n",
       "      <td>0.08209550</td>\n",
       "      <td>0.34847488</td>\n",
       "      <td>-0.13808183</td>\n",
       "      <td>0.07129350</td>\n",
       "      <td>0.10524542</td>\n",
       "      <td>-0.04587567</td>\n",
       "      <td>-0.08549499</td>\n",
       "      <td>0.00322218</td>\n",
       "      <td>0.10550489</td>\n",
       "      <td>0.06748921</td>\n",
       "      <td>-0.04415964</td>\n",
       "      <td>-0.02178161</td>\n",
       "      <td>0.01567381</td>\n",
       "      <td>-0.03204526</td>\n",
       "      <td>0.01570165</td>\n",
       "      <td>-0.04607693</td>\n",
       "      <td>-0.01415149</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>-0.03433256</td>\n",
       "      <td>0.03451502</td>\n",
       "      <td>0.01133837</td>\n",
       "      <td>-0.02543653</td>\n",
       "      <td>-0.00816998</td>\n",
       "      <td>-0.01319151</td>\n",
       "      <td>-0.06095808</td>\n",
       "      <td>0.00654306</td>\n",
       "      <td>-0.03261635</td>\n",
       "      <td>-0.01342214</td>\n",
       "      <td>0.02901137</td>\n",
       "      <td>0.03837749</td>\n",
       "      <td>-0.05006282</td>\n",
       "      <td>-0.00488237</td>\n",
       "      <td>-0.02132017</td>\n",
       "      <td>0.03016017</td>\n",
       "      <td>-0.01145684</td>\n",
       "      <td>0.04795064</td>\n",
       "      <td>0.05769756</td>\n",
       "      <td>0.08529023</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>-0.03409988</td>\n",
       "      <td>-0.00139319</td>\n",
       "      <td>0.03946703</td>\n",
       "      <td>-0.01721336</td>\n",
       "      <td>-0.03047267</td>\n",
       "      <td>-0.01756803</td>\n",
       "      <td>0.02323525</td>\n",
       "      <td>0.01144347</td>\n",
       "      <td>-0.02655168</td>\n",
       "      <td>-0.00768524</td>\n",
       "      <td>0.02688303</td>\n",
       "      <td>0.00705191</td>\n",
       "      <td>0.00529323</td>\n",
       "      <td>0.01265877</td>\n",
       "      <td>0.05178885</td>\n",
       "      <td>-0.07356573</td>\n",
       "      <td>-0.03228226</td>\n",
       "      <td>0.09406169</td>\n",
       "      <td>-0.00988035</td>\n",
       "      <td>0.04455273</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>-0.01803099</td>\n",
       "      <td>0.02568151</td>\n",
       "      <td>0.00435185</td>\n",
       "      <td>-0.07078157</td>\n",
       "      <td>0.01319952</td>\n",
       "      <td>0.05428235</td>\n",
       "      <td>-0.01567069</td>\n",
       "      <td>0.04047295</td>\n",
       "      <td>-0.01250395</td>\n",
       "      <td>-0.03521164</td>\n",
       "      <td>-0.05132587</td>\n",
       "      <td>-0.04068715</td>\n",
       "      <td>-0.05090663</td>\n",
       "      <td>-0.01873979</td>\n",
       "      <td>-0.01149224</td>\n",
       "      <td>-0.04213666</td>\n",
       "      <td>0.01814236</td>\n",
       "      <td>0.04457503</td>\n",
       "      <td>0.01684312</td>\n",
       "      <td>0.06711364</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <td>-0.02890016</td>\n",
       "      <td>0.03259161</td>\n",
       "      <td>-0.00742075</td>\n",
       "      <td>-0.03355188</td>\n",
       "      <td>-0.01152096</td>\n",
       "      <td>0.02648412</td>\n",
       "      <td>0.01084806</td>\n",
       "      <td>-0.00571080</td>\n",
       "      <td>0.01354572</td>\n",
       "      <td>-0.02969061</td>\n",
       "      <td>-0.03158625</td>\n",
       "      <td>0.01717923</td>\n",
       "      <td>-0.00314009</td>\n",
       "      <td>0.02642881</td>\n",
       "      <td>0.00800301</td>\n",
       "      <td>0.00834448</td>\n",
       "      <td>-0.01875213</td>\n",
       "      <td>-0.01385140</td>\n",
       "      <td>0.00993866</td>\n",
       "      <td>-0.02800522</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <td>-0.02905740</td>\n",
       "      <td>0.02977821</td>\n",
       "      <td>-0.02970868</td>\n",
       "      <td>-0.03574271</td>\n",
       "      <td>-0.01157427</td>\n",
       "      <td>0.06020054</td>\n",
       "      <td>-0.02003896</td>\n",
       "      <td>0.04098347</td>\n",
       "      <td>-0.01802725</td>\n",
       "      <td>-0.00617438</td>\n",
       "      <td>-0.03158237</td>\n",
       "      <td>-0.02319143</td>\n",
       "      <td>-0.01415907</td>\n",
       "      <td>-0.00040762</td>\n",
       "      <td>-0.01895333</td>\n",
       "      <td>0.01377189</td>\n",
       "      <td>-0.03944285</td>\n",
       "      <td>0.01212353</td>\n",
       "      <td>0.01796965</td>\n",
       "      <td>0.00391765</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <td>-0.04337745</td>\n",
       "      <td>0.00256907</td>\n",
       "      <td>0.00413231</td>\n",
       "      <td>-0.00349272</td>\n",
       "      <td>-0.05430895</td>\n",
       "      <td>0.00537768</td>\n",
       "      <td>0.00277692</td>\n",
       "      <td>0.03044656</td>\n",
       "      <td>-0.01880501</td>\n",
       "      <td>-0.00178051</td>\n",
       "      <td>-0.03539564</td>\n",
       "      <td>-0.01105793</td>\n",
       "      <td>0.02637767</td>\n",
       "      <td>-0.01248730</td>\n",
       "      <td>0.00269523</td>\n",
       "      <td>0.01779118</td>\n",
       "      <td>-0.00435989</td>\n",
       "      <td>-0.00927531</td>\n",
       "      <td>-0.01499190</td>\n",
       "      <td>-0.03729018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <td>-0.04730285</td>\n",
       "      <td>0.02661175</td>\n",
       "      <td>0.03057071</td>\n",
       "      <td>-0.02114663</td>\n",
       "      <td>-0.04838637</td>\n",
       "      <td>-0.00708309</td>\n",
       "      <td>0.00743084</td>\n",
       "      <td>0.00750241</td>\n",
       "      <td>0.01484313</td>\n",
       "      <td>-0.00155567</td>\n",
       "      <td>-0.01231848</td>\n",
       "      <td>-0.00685361</td>\n",
       "      <td>0.03507154</td>\n",
       "      <td>-0.04370220</td>\n",
       "      <td>0.00926058</td>\n",
       "      <td>-0.00451387</td>\n",
       "      <td>0.01929702</td>\n",
       "      <td>-0.03490402</td>\n",
       "      <td>-0.00095678</td>\n",
       "      <td>-0.04831866</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <td>-0.04712287</td>\n",
       "      <td>-0.00381150</td>\n",
       "      <td>0.05600848</td>\n",
       "      <td>-0.01553771</td>\n",
       "      <td>-0.06946368</td>\n",
       "      <td>-0.00560496</td>\n",
       "      <td>0.10070937</td>\n",
       "      <td>0.06305665</td>\n",
       "      <td>0.00162851</td>\n",
       "      <td>0.01915833</td>\n",
       "      <td>0.01085946</td>\n",
       "      <td>0.00351036</td>\n",
       "      <td>-0.05447743</td>\n",
       "      <td>-0.04206121</td>\n",
       "      <td>0.00068269</td>\n",
       "      <td>-0.04961729</td>\n",
       "      <td>0.00679634</td>\n",
       "      <td>0.04489691</td>\n",
       "      <td>0.01736766</td>\n",
       "      <td>0.00956659</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(10 [ADM])</th>\n",
       "      <td>-0.04375945</td>\n",
       "      <td>-0.01130045</td>\n",
       "      <td>-0.03457005</td>\n",
       "      <td>0.00400569</td>\n",
       "      <td>-0.00645260</td>\n",
       "      <td>0.01746974</td>\n",
       "      <td>-0.00145658</td>\n",
       "      <td>0.04179348</td>\n",
       "      <td>-0.00478565</td>\n",
       "      <td>-0.01859306</td>\n",
       "      <td>0.00419106</td>\n",
       "      <td>-0.00952956</td>\n",
       "      <td>-0.01348503</td>\n",
       "      <td>0.01732993</td>\n",
       "      <td>0.00984216</td>\n",
       "      <td>0.02389138</td>\n",
       "      <td>-0.02011735</td>\n",
       "      <td>-0.00202790</td>\n",
       "      <td>0.00185389</td>\n",
       "      <td>-0.00812939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(11 [ADP])</th>\n",
       "      <td>-0.03648136</td>\n",
       "      <td>0.02528125</td>\n",
       "      <td>-0.01114830</td>\n",
       "      <td>-0.00940999</td>\n",
       "      <td>-0.03357747</td>\n",
       "      <td>0.02887549</td>\n",
       "      <td>-0.00509644</td>\n",
       "      <td>0.04466659</td>\n",
       "      <td>-0.00673989</td>\n",
       "      <td>0.00340349</td>\n",
       "      <td>-0.00495277</td>\n",
       "      <td>0.00187489</td>\n",
       "      <td>-0.01034098</td>\n",
       "      <td>-0.00603492</td>\n",
       "      <td>-0.00343086</td>\n",
       "      <td>-0.00251332</td>\n",
       "      <td>-0.00376246</td>\n",
       "      <td>0.00696626</td>\n",
       "      <td>0.00618101</td>\n",
       "      <td>-0.02328252</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(12 [ADS])</th>\n",
       "      <td>-0.04136654</td>\n",
       "      <td>0.01659887</td>\n",
       "      <td>0.01716323</td>\n",
       "      <td>-0.02418703</td>\n",
       "      <td>-0.00389623</td>\n",
       "      <td>0.00098179</td>\n",
       "      <td>-0.02299730</td>\n",
       "      <td>0.01316862</td>\n",
       "      <td>-0.02791268</td>\n",
       "      <td>0.00654326</td>\n",
       "      <td>0.00632701</td>\n",
       "      <td>-0.00342705</td>\n",
       "      <td>0.01588025</td>\n",
       "      <td>-0.02303402</td>\n",
       "      <td>0.01772651</td>\n",
       "      <td>0.00312095</td>\n",
       "      <td>-0.01220245</td>\n",
       "      <td>-0.02474724</td>\n",
       "      <td>-0.01935921</td>\n",
       "      <td>0.02634492</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(13 [ADSK])</th>\n",
       "      <td>-0.06028785</td>\n",
       "      <td>0.01995266</td>\n",
       "      <td>0.05164356</td>\n",
       "      <td>0.00105688</td>\n",
       "      <td>-0.06889048</td>\n",
       "      <td>-0.04892382</td>\n",
       "      <td>0.04706101</td>\n",
       "      <td>-0.02743203</td>\n",
       "      <td>0.00281949</td>\n",
       "      <td>0.00519804</td>\n",
       "      <td>-0.01130461</td>\n",
       "      <td>-0.00124711</td>\n",
       "      <td>0.04049696</td>\n",
       "      <td>-0.03307856</td>\n",
       "      <td>0.01896776</td>\n",
       "      <td>0.02300794</td>\n",
       "      <td>0.05413420</td>\n",
       "      <td>-0.06374657</td>\n",
       "      <td>-0.03730318</td>\n",
       "      <td>-0.02989322</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(14 [AEE])</th>\n",
       "      <td>-0.02646901</td>\n",
       "      <td>0.02222316</td>\n",
       "      <td>-0.10715000</td>\n",
       "      <td>-0.03824478</td>\n",
       "      <td>-0.00157829</td>\n",
       "      <td>-0.02310360</td>\n",
       "      <td>0.02412562</td>\n",
       "      <td>0.04418713</td>\n",
       "      <td>0.00039877</td>\n",
       "      <td>-0.02601425</td>\n",
       "      <td>0.02324394</td>\n",
       "      <td>-0.05447119</td>\n",
       "      <td>0.00727577</td>\n",
       "      <td>-0.00898009</td>\n",
       "      <td>0.02849351</td>\n",
       "      <td>0.02625939</td>\n",
       "      <td>0.03526974</td>\n",
       "      <td>-0.00824192</td>\n",
       "      <td>-0.03313521</td>\n",
       "      <td>-0.03297992</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(15 [AEP])</th>\n",
       "      <td>-0.02263370</td>\n",
       "      <td>0.01880106</td>\n",
       "      <td>-0.10030312</td>\n",
       "      <td>-0.04210439</td>\n",
       "      <td>0.00205689</td>\n",
       "      <td>-0.03150356</td>\n",
       "      <td>0.02496800</td>\n",
       "      <td>0.05473636</td>\n",
       "      <td>0.00164053</td>\n",
       "      <td>-0.02267575</td>\n",
       "      <td>0.01764113</td>\n",
       "      <td>-0.04783703</td>\n",
       "      <td>-0.01348955</td>\n",
       "      <td>-0.00613214</td>\n",
       "      <td>0.03470989</td>\n",
       "      <td>0.02729481</td>\n",
       "      <td>0.03984473</td>\n",
       "      <td>0.00476357</td>\n",
       "      <td>-0.01668101</td>\n",
       "      <td>-0.01586625</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(16 [AES])</th>\n",
       "      <td>-0.04557539</td>\n",
       "      <td>-0.01859286</td>\n",
       "      <td>-0.06960049</td>\n",
       "      <td>-0.02023065</td>\n",
       "      <td>0.01303813</td>\n",
       "      <td>-0.01748349</td>\n",
       "      <td>0.02894893</td>\n",
       "      <td>0.03054182</td>\n",
       "      <td>-0.01234187</td>\n",
       "      <td>-0.02634054</td>\n",
       "      <td>0.00389523</td>\n",
       "      <td>-0.05876228</td>\n",
       "      <td>-0.01470544</td>\n",
       "      <td>0.01031992</td>\n",
       "      <td>0.04757450</td>\n",
       "      <td>0.00921931</td>\n",
       "      <td>0.00953939</td>\n",
       "      <td>-0.02372752</td>\n",
       "      <td>-0.05813816</td>\n",
       "      <td>-0.01956474</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(17 [AET])</th>\n",
       "      <td>-0.04072498</td>\n",
       "      <td>0.02731997</td>\n",
       "      <td>-0.00507230</td>\n",
       "      <td>-0.02802245</td>\n",
       "      <td>-0.00180926</td>\n",
       "      <td>0.06385466</td>\n",
       "      <td>0.00043775</td>\n",
       "      <td>-0.03712771</td>\n",
       "      <td>0.00998663</td>\n",
       "      <td>-0.09653393</td>\n",
       "      <td>-0.04571296</td>\n",
       "      <td>0.04510895</td>\n",
       "      <td>-0.08452010</td>\n",
       "      <td>0.06459938</td>\n",
       "      <td>-0.07278192</td>\n",
       "      <td>0.00873776</td>\n",
       "      <td>0.01549979</td>\n",
       "      <td>0.00749589</td>\n",
       "      <td>0.00340799</td>\n",
       "      <td>-0.04664053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(18 [AFL])</th>\n",
       "      <td>-0.05336864</td>\n",
       "      <td>0.00134653</td>\n",
       "      <td>-0.02782497</td>\n",
       "      <td>0.06689006</td>\n",
       "      <td>-0.01354929</td>\n",
       "      <td>0.04111617</td>\n",
       "      <td>-0.00400456</td>\n",
       "      <td>-0.01389035</td>\n",
       "      <td>0.01361193</td>\n",
       "      <td>0.00340342</td>\n",
       "      <td>-0.00990063</td>\n",
       "      <td>-0.00929392</td>\n",
       "      <td>0.01344626</td>\n",
       "      <td>-0.00683515</td>\n",
       "      <td>0.00052534</td>\n",
       "      <td>0.00044048</td>\n",
       "      <td>0.00044783</td>\n",
       "      <td>0.00338429</td>\n",
       "      <td>0.01684353</td>\n",
       "      <td>-0.03281822</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(19 [AGN])</th>\n",
       "      <td>-0.03534102</td>\n",
       "      <td>0.04465091</td>\n",
       "      <td>0.02264082</td>\n",
       "      <td>-0.09556032</td>\n",
       "      <td>0.02867984</td>\n",
       "      <td>0.06515341</td>\n",
       "      <td>-0.02262966</td>\n",
       "      <td>-0.01928881</td>\n",
       "      <td>-0.02384119</td>\n",
       "      <td>-0.02586432</td>\n",
       "      <td>-0.02641574</td>\n",
       "      <td>-0.00721757</td>\n",
       "      <td>-0.01425313</td>\n",
       "      <td>0.01705316</td>\n",
       "      <td>0.00875420</td>\n",
       "      <td>0.01851321</td>\n",
       "      <td>-0.02064573</td>\n",
       "      <td>0.02339983</td>\n",
       "      <td>-0.02085429</td>\n",
       "      <td>0.01701517</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(20 [AIG])</th>\n",
       "      <td>-0.05982324</td>\n",
       "      <td>0.00588515</td>\n",
       "      <td>-0.01162876</td>\n",
       "      <td>0.06668341</td>\n",
       "      <td>0.01385522</td>\n",
       "      <td>0.04009833</td>\n",
       "      <td>-0.01874201</td>\n",
       "      <td>-0.02395295</td>\n",
       "      <td>0.01456997</td>\n",
       "      <td>0.02059392</td>\n",
       "      <td>-0.00590146</td>\n",
       "      <td>-0.01871433</td>\n",
       "      <td>-0.00572274</td>\n",
       "      <td>-0.02829507</td>\n",
       "      <td>0.03209348</td>\n",
       "      <td>-0.01045613</td>\n",
       "      <td>-0.00962788</td>\n",
       "      <td>-0.05113832</td>\n",
       "      <td>-0.01506476</td>\n",
       "      <td>-0.00436047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(21 [AIV])</th>\n",
       "      <td>-0.04111735</td>\n",
       "      <td>0.03100207</td>\n",
       "      <td>-0.10211708</td>\n",
       "      <td>-0.00919329</td>\n",
       "      <td>0.01055478</td>\n",
       "      <td>-0.04739106</td>\n",
       "      <td>0.05244775</td>\n",
       "      <td>-0.09495966</td>\n",
       "      <td>0.04962104</td>\n",
       "      <td>0.00393936</td>\n",
       "      <td>0.02494902</td>\n",
       "      <td>0.02542252</td>\n",
       "      <td>0.02085436</td>\n",
       "      <td>-0.04196728</td>\n",
       "      <td>-0.02049296</td>\n",
       "      <td>-0.03746101</td>\n",
       "      <td>-0.01450691</td>\n",
       "      <td>0.02374203</td>\n",
       "      <td>0.04525892</td>\n",
       "      <td>0.06318124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(22 [AIZ])</th>\n",
       "      <td>-0.04150874</td>\n",
       "      <td>0.01695771</td>\n",
       "      <td>-0.03297298</td>\n",
       "      <td>0.04770325</td>\n",
       "      <td>-0.00003356</td>\n",
       "      <td>0.04220339</td>\n",
       "      <td>-0.00296063</td>\n",
       "      <td>0.01715736</td>\n",
       "      <td>0.02194816</td>\n",
       "      <td>-0.01976910</td>\n",
       "      <td>0.00850007</td>\n",
       "      <td>-0.00200901</td>\n",
       "      <td>-0.02140440</td>\n",
       "      <td>-0.00999084</td>\n",
       "      <td>0.02916537</td>\n",
       "      <td>0.01098524</td>\n",
       "      <td>0.00853705</td>\n",
       "      <td>-0.01306887</td>\n",
       "      <td>0.00099193</td>\n",
       "      <td>0.00654670</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(23 [AJG])</th>\n",
       "      <td>-0.03351812</td>\n",
       "      <td>0.01723113</td>\n",
       "      <td>-0.02538600</td>\n",
       "      <td>0.01303828</td>\n",
       "      <td>-0.00670142</td>\n",
       "      <td>0.02117802</td>\n",
       "      <td>-0.01016105</td>\n",
       "      <td>0.00116861</td>\n",
       "      <td>0.00769209</td>\n",
       "      <td>0.00436542</td>\n",
       "      <td>-0.00824245</td>\n",
       "      <td>0.01517760</td>\n",
       "      <td>-0.00139564</td>\n",
       "      <td>-0.00791261</td>\n",
       "      <td>-0.00515837</td>\n",
       "      <td>-0.00153118</td>\n",
       "      <td>-0.00446795</td>\n",
       "      <td>-0.01399511</td>\n",
       "      <td>-0.00468465</td>\n",
       "      <td>0.01136640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(24 [AKAM])</th>\n",
       "      <td>-0.05587884</td>\n",
       "      <td>0.00798597</td>\n",
       "      <td>0.06670049</td>\n",
       "      <td>-0.00705487</td>\n",
       "      <td>-0.05149317</td>\n",
       "      <td>-0.04836921</td>\n",
       "      <td>0.02744500</td>\n",
       "      <td>-0.00621882</td>\n",
       "      <td>0.02663756</td>\n",
       "      <td>-0.01162011</td>\n",
       "      <td>0.00102594</td>\n",
       "      <td>-0.06362917</td>\n",
       "      <td>-0.07364306</td>\n",
       "      <td>0.00252926</td>\n",
       "      <td>0.12394521</td>\n",
       "      <td>0.13798635</td>\n",
       "      <td>0.01092964</td>\n",
       "      <td>-0.00493021</td>\n",
       "      <td>-0.01019312</td>\n",
       "      <td>0.05572339</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(25 [ALB])</th>\n",
       "      <td>-0.05982022</td>\n",
       "      <td>-0.03657576</td>\n",
       "      <td>0.01798660</td>\n",
       "      <td>0.01363551</td>\n",
       "      <td>-0.01736151</td>\n",
       "      <td>-0.03080528</td>\n",
       "      <td>0.04203556</td>\n",
       "      <td>0.00602659</td>\n",
       "      <td>-0.02056881</td>\n",
       "      <td>0.03716029</td>\n",
       "      <td>-0.00124284</td>\n",
       "      <td>0.01925145</td>\n",
       "      <td>0.03966397</td>\n",
       "      <td>0.09132582</td>\n",
       "      <td>-0.06629776</td>\n",
       "      <td>-0.01452511</td>\n",
       "      <td>-0.04443369</td>\n",
       "      <td>-0.02957625</td>\n",
       "      <td>-0.03315314</td>\n",
       "      <td>0.04803426</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(26 [ALGN])</th>\n",
       "      <td>-0.05959262</td>\n",
       "      <td>0.01420686</td>\n",
       "      <td>0.04030663</td>\n",
       "      <td>-0.00223707</td>\n",
       "      <td>0.00379440</td>\n",
       "      <td>0.03560304</td>\n",
       "      <td>0.04026342</td>\n",
       "      <td>-0.09390897</td>\n",
       "      <td>0.03526819</td>\n",
       "      <td>0.01022778</td>\n",
       "      <td>-0.07460127</td>\n",
       "      <td>0.02151785</td>\n",
       "      <td>0.11040929</td>\n",
       "      <td>0.07188677</td>\n",
       "      <td>-0.05715082</td>\n",
       "      <td>-0.07080753</td>\n",
       "      <td>0.04694717</td>\n",
       "      <td>0.01636119</td>\n",
       "      <td>-0.02588599</td>\n",
       "      <td>0.01263746</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(27 [ALK])</th>\n",
       "      <td>-0.04887994</td>\n",
       "      <td>0.12134700</td>\n",
       "      <td>0.03971833</td>\n",
       "      <td>0.02356253</td>\n",
       "      <td>0.12647955</td>\n",
       "      <td>-0.05703493</td>\n",
       "      <td>0.02167528</td>\n",
       "      <td>0.06426832</td>\n",
       "      <td>-0.01673719</td>\n",
       "      <td>-0.02363509</td>\n",
       "      <td>-0.00069417</td>\n",
       "      <td>0.06373686</td>\n",
       "      <td>0.00105735</td>\n",
       "      <td>0.00617074</td>\n",
       "      <td>0.01425294</td>\n",
       "      <td>0.02200355</td>\n",
       "      <td>0.04102878</td>\n",
       "      <td>0.01167443</td>\n",
       "      <td>0.05125948</td>\n",
       "      <td>-0.03906276</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(28 [ALL])</th>\n",
       "      <td>-0.03960459</td>\n",
       "      <td>0.01388579</td>\n",
       "      <td>-0.04298738</td>\n",
       "      <td>0.04705241</td>\n",
       "      <td>-0.00072861</td>\n",
       "      <td>0.03487481</td>\n",
       "      <td>-0.01156125</td>\n",
       "      <td>0.00876464</td>\n",
       "      <td>-0.00076414</td>\n",
       "      <td>-0.00132343</td>\n",
       "      <td>0.01284531</td>\n",
       "      <td>-0.00675485</td>\n",
       "      <td>-0.01020924</td>\n",
       "      <td>-0.00905214</td>\n",
       "      <td>0.02515899</td>\n",
       "      <td>-0.00495540</td>\n",
       "      <td>-0.00061372</td>\n",
       "      <td>-0.00042675</td>\n",
       "      <td>0.00165531</td>\n",
       "      <td>-0.00705429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(29 [ALLE])</th>\n",
       "      <td>-0.01215236</td>\n",
       "      <td>0.01485340</td>\n",
       "      <td>0.01783513</td>\n",
       "      <td>-0.02151473</td>\n",
       "      <td>0.00049760</td>\n",
       "      <td>0.02208186</td>\n",
       "      <td>-0.01397111</td>\n",
       "      <td>0.04559501</td>\n",
       "      <td>-0.01576268</td>\n",
       "      <td>0.00228715</td>\n",
       "      <td>-0.01535328</td>\n",
       "      <td>-0.02635498</td>\n",
       "      <td>-0.00614175</td>\n",
       "      <td>-0.04124249</td>\n",
       "      <td>-0.00833594</td>\n",
       "      <td>-0.01916313</td>\n",
       "      <td>-0.00932486</td>\n",
       "      <td>0.03663948</td>\n",
       "      <td>0.00701798</td>\n",
       "      <td>0.03355151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(460 [VRSN])</th>\n",
       "      <td>-0.03899324</td>\n",
       "      <td>0.01109333</td>\n",
       "      <td>0.04065348</td>\n",
       "      <td>-0.01351031</td>\n",
       "      <td>-0.03907012</td>\n",
       "      <td>0.00844579</td>\n",
       "      <td>0.01231571</td>\n",
       "      <td>-0.02029448</td>\n",
       "      <td>-0.01425848</td>\n",
       "      <td>-0.00827544</td>\n",
       "      <td>-0.02486401</td>\n",
       "      <td>0.02083316</td>\n",
       "      <td>0.00109034</td>\n",
       "      <td>0.01375702</td>\n",
       "      <td>0.02222061</td>\n",
       "      <td>0.03581243</td>\n",
       "      <td>-0.00885366</td>\n",
       "      <td>-0.00359890</td>\n",
       "      <td>-0.02729625</td>\n",
       "      <td>0.00271635</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(461 [VRTX])</th>\n",
       "      <td>-0.04909379</td>\n",
       "      <td>0.09821506</td>\n",
       "      <td>0.07490356</td>\n",
       "      <td>-0.22874283</td>\n",
       "      <td>0.18285899</td>\n",
       "      <td>0.29795861</td>\n",
       "      <td>0.16782869</td>\n",
       "      <td>-0.08586009</td>\n",
       "      <td>0.17243108</td>\n",
       "      <td>0.26887825</td>\n",
       "      <td>0.58246216</td>\n",
       "      <td>-0.03513102</td>\n",
       "      <td>-0.12605830</td>\n",
       "      <td>0.36186726</td>\n",
       "      <td>-0.14247243</td>\n",
       "      <td>-0.10293613</td>\n",
       "      <td>0.15443334</td>\n",
       "      <td>0.00431922</td>\n",
       "      <td>0.05188559</td>\n",
       "      <td>-0.09783374</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(462 [VTR])</th>\n",
       "      <td>-0.03291326</td>\n",
       "      <td>0.03068907</td>\n",
       "      <td>-0.12174008</td>\n",
       "      <td>-0.03757315</td>\n",
       "      <td>-0.00091452</td>\n",
       "      <td>-0.05384970</td>\n",
       "      <td>0.03087987</td>\n",
       "      <td>-0.06663601</td>\n",
       "      <td>0.04681692</td>\n",
       "      <td>0.00815671</td>\n",
       "      <td>-0.00369202</td>\n",
       "      <td>0.02305367</td>\n",
       "      <td>0.02490274</td>\n",
       "      <td>-0.03305801</td>\n",
       "      <td>-0.01335867</td>\n",
       "      <td>-0.02071862</td>\n",
       "      <td>-0.01954732</td>\n",
       "      <td>-0.00673414</td>\n",
       "      <td>0.04199869</td>\n",
       "      <td>0.02970671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(463 [VZ])</th>\n",
       "      <td>-0.07033190</td>\n",
       "      <td>0.00068427</td>\n",
       "      <td>-0.01610415</td>\n",
       "      <td>0.05981359</td>\n",
       "      <td>-0.01922504</td>\n",
       "      <td>0.03299010</td>\n",
       "      <td>-0.00089756</td>\n",
       "      <td>-0.00204495</td>\n",
       "      <td>0.03346171</td>\n",
       "      <td>-0.00820226</td>\n",
       "      <td>0.01312502</td>\n",
       "      <td>-0.01339633</td>\n",
       "      <td>0.00422768</td>\n",
       "      <td>-0.00896355</td>\n",
       "      <td>0.00608561</td>\n",
       "      <td>-0.01704633</td>\n",
       "      <td>0.00259388</td>\n",
       "      <td>-0.03296249</td>\n",
       "      <td>-0.03614266</td>\n",
       "      <td>-0.02091311</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(464 [WAT])</th>\n",
       "      <td>-0.04787963</td>\n",
       "      <td>0.01976102</td>\n",
       "      <td>0.00630831</td>\n",
       "      <td>-0.01309637</td>\n",
       "      <td>-0.02786496</td>\n",
       "      <td>0.02969204</td>\n",
       "      <td>0.01136657</td>\n",
       "      <td>-0.01290647</td>\n",
       "      <td>0.02280008</td>\n",
       "      <td>0.00205507</td>\n",
       "      <td>-0.05579844</td>\n",
       "      <td>0.02565708</td>\n",
       "      <td>0.02276935</td>\n",
       "      <td>0.01129024</td>\n",
       "      <td>-0.03670103</td>\n",
       "      <td>0.03038893</td>\n",
       "      <td>-0.00919974</td>\n",
       "      <td>0.04816862</td>\n",
       "      <td>-0.01481828</td>\n",
       "      <td>-0.03010232</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(465 [WBA])</th>\n",
       "      <td>-0.03065220</td>\n",
       "      <td>0.03421533</td>\n",
       "      <td>-0.01027999</td>\n",
       "      <td>-0.04006666</td>\n",
       "      <td>-0.01725513</td>\n",
       "      <td>0.02037521</td>\n",
       "      <td>-0.00924148</td>\n",
       "      <td>0.04976091</td>\n",
       "      <td>-0.02417771</td>\n",
       "      <td>-0.02909557</td>\n",
       "      <td>-0.01700641</td>\n",
       "      <td>-0.00987924</td>\n",
       "      <td>-0.02952565</td>\n",
       "      <td>-0.00838890</td>\n",
       "      <td>-0.02429464</td>\n",
       "      <td>0.01784314</td>\n",
       "      <td>0.02999816</td>\n",
       "      <td>0.02996985</td>\n",
       "      <td>0.01267287</td>\n",
       "      <td>0.00747609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(466 [WDC])</th>\n",
       "      <td>-0.05340806</td>\n",
       "      <td>-0.00776436</td>\n",
       "      <td>0.06117299</td>\n",
       "      <td>-0.01397329</td>\n",
       "      <td>-0.02898334</td>\n",
       "      <td>-0.05152195</td>\n",
       "      <td>0.10653754</td>\n",
       "      <td>0.00361593</td>\n",
       "      <td>-0.00174693</td>\n",
       "      <td>-0.01746300</td>\n",
       "      <td>0.03052392</td>\n",
       "      <td>-0.00871879</td>\n",
       "      <td>-0.11251380</td>\n",
       "      <td>0.02958820</td>\n",
       "      <td>0.13568735</td>\n",
       "      <td>0.17143039</td>\n",
       "      <td>0.10840725</td>\n",
       "      <td>-0.22910643</td>\n",
       "      <td>-0.05503372</td>\n",
       "      <td>0.26692166</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(467 [WEC])</th>\n",
       "      <td>-0.02279115</td>\n",
       "      <td>0.02557593</td>\n",
       "      <td>-0.10491697</td>\n",
       "      <td>-0.04691483</td>\n",
       "      <td>-0.00109182</td>\n",
       "      <td>-0.02887381</td>\n",
       "      <td>0.01886363</td>\n",
       "      <td>0.05105385</td>\n",
       "      <td>0.01033637</td>\n",
       "      <td>-0.02586146</td>\n",
       "      <td>0.02237280</td>\n",
       "      <td>-0.04426359</td>\n",
       "      <td>0.00092207</td>\n",
       "      <td>-0.01730092</td>\n",
       "      <td>0.02238761</td>\n",
       "      <td>0.01457791</td>\n",
       "      <td>0.04751704</td>\n",
       "      <td>-0.01035507</td>\n",
       "      <td>-0.01679387</td>\n",
       "      <td>-0.01901844</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(468 [WFC])</th>\n",
       "      <td>-0.05131308</td>\n",
       "      <td>0.01109305</td>\n",
       "      <td>-0.03096455</td>\n",
       "      <td>0.08514610</td>\n",
       "      <td>0.00399854</td>\n",
       "      <td>0.06169066</td>\n",
       "      <td>-0.01917657</td>\n",
       "      <td>-0.00979766</td>\n",
       "      <td>0.02013085</td>\n",
       "      <td>0.00923565</td>\n",
       "      <td>0.02751783</td>\n",
       "      <td>-0.01820251</td>\n",
       "      <td>-0.00862624</td>\n",
       "      <td>-0.02237534</td>\n",
       "      <td>0.02426574</td>\n",
       "      <td>0.00327885</td>\n",
       "      <td>-0.00421611</td>\n",
       "      <td>0.00340445</td>\n",
       "      <td>-0.02556188</td>\n",
       "      <td>0.01076139</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(469 [WHR])</th>\n",
       "      <td>-0.05507142</td>\n",
       "      <td>0.03637282</td>\n",
       "      <td>-0.00100605</td>\n",
       "      <td>0.00590475</td>\n",
       "      <td>0.01093083</td>\n",
       "      <td>-0.06423518</td>\n",
       "      <td>-0.05592622</td>\n",
       "      <td>0.02532514</td>\n",
       "      <td>-0.04218988</td>\n",
       "      <td>0.13437383</td>\n",
       "      <td>-0.01639614</td>\n",
       "      <td>0.01577426</td>\n",
       "      <td>-0.05529682</td>\n",
       "      <td>0.04102912</td>\n",
       "      <td>0.04136107</td>\n",
       "      <td>0.02998499</td>\n",
       "      <td>0.04759629</td>\n",
       "      <td>0.02259315</td>\n",
       "      <td>0.01328537</td>\n",
       "      <td>0.01088077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(471 [WM])</th>\n",
       "      <td>-0.03151644</td>\n",
       "      <td>0.01496675</td>\n",
       "      <td>-0.03234350</td>\n",
       "      <td>-0.00111925</td>\n",
       "      <td>-0.02960382</td>\n",
       "      <td>0.00379336</td>\n",
       "      <td>-0.00185484</td>\n",
       "      <td>0.01332233</td>\n",
       "      <td>-0.00243167</td>\n",
       "      <td>-0.00944590</td>\n",
       "      <td>0.00285446</td>\n",
       "      <td>0.00919116</td>\n",
       "      <td>-0.00711037</td>\n",
       "      <td>0.03206951</td>\n",
       "      <td>-0.01152127</td>\n",
       "      <td>0.03659853</td>\n",
       "      <td>0.01800341</td>\n",
       "      <td>-0.02180578</td>\n",
       "      <td>0.02329823</td>\n",
       "      <td>0.00863871</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(472 [WMB])</th>\n",
       "      <td>-0.05476156</td>\n",
       "      <td>-0.08924997</td>\n",
       "      <td>-0.02426236</td>\n",
       "      <td>-0.05723848</td>\n",
       "      <td>0.07886918</td>\n",
       "      <td>-0.01255106</td>\n",
       "      <td>-0.03518221</td>\n",
       "      <td>0.02303604</td>\n",
       "      <td>-0.03169316</td>\n",
       "      <td>-0.02925053</td>\n",
       "      <td>0.00880337</td>\n",
       "      <td>0.01967529</td>\n",
       "      <td>-0.01092052</td>\n",
       "      <td>-0.00323985</td>\n",
       "      <td>0.03821428</td>\n",
       "      <td>-0.02458367</td>\n",
       "      <td>-0.02991669</td>\n",
       "      <td>-0.02019306</td>\n",
       "      <td>-0.10291795</td>\n",
       "      <td>-0.01731531</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(473 [WMT])</th>\n",
       "      <td>-0.01988671</td>\n",
       "      <td>0.03467415</td>\n",
       "      <td>-0.04017191</td>\n",
       "      <td>-0.00769656</td>\n",
       "      <td>-0.01460187</td>\n",
       "      <td>0.00726739</td>\n",
       "      <td>-0.02276118</td>\n",
       "      <td>0.03830017</td>\n",
       "      <td>-0.01129067</td>\n",
       "      <td>-0.00759721</td>\n",
       "      <td>0.00867462</td>\n",
       "      <td>0.00365705</td>\n",
       "      <td>-0.04322062</td>\n",
       "      <td>0.02467927</td>\n",
       "      <td>0.01322268</td>\n",
       "      <td>0.01162737</td>\n",
       "      <td>-0.02496203</td>\n",
       "      <td>0.00434721</td>\n",
       "      <td>0.00800293</td>\n",
       "      <td>0.01167021</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(474 [WRK])</th>\n",
       "      <td>-0.00563001</td>\n",
       "      <td>-0.00526226</td>\n",
       "      <td>0.00630658</td>\n",
       "      <td>-0.00994054</td>\n",
       "      <td>0.00615540</td>\n",
       "      <td>0.01085324</td>\n",
       "      <td>0.00187943</td>\n",
       "      <td>0.01707617</td>\n",
       "      <td>-0.00686116</td>\n",
       "      <td>-0.00780335</td>\n",
       "      <td>0.00361935</td>\n",
       "      <td>-0.02965762</td>\n",
       "      <td>-0.02063825</td>\n",
       "      <td>0.00904419</td>\n",
       "      <td>0.00185310</td>\n",
       "      <td>-0.01843328</td>\n",
       "      <td>-0.01246073</td>\n",
       "      <td>0.02326707</td>\n",
       "      <td>-0.02083906</td>\n",
       "      <td>0.04109270</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(475 [WU])</th>\n",
       "      <td>-0.04059879</td>\n",
       "      <td>0.00365919</td>\n",
       "      <td>0.01271943</td>\n",
       "      <td>0.00231518</td>\n",
       "      <td>-0.01726751</td>\n",
       "      <td>0.03142876</td>\n",
       "      <td>0.02343821</td>\n",
       "      <td>0.01430728</td>\n",
       "      <td>-0.02395318</td>\n",
       "      <td>-0.00790029</td>\n",
       "      <td>-0.02324971</td>\n",
       "      <td>-0.00988128</td>\n",
       "      <td>-0.00295607</td>\n",
       "      <td>-0.02107737</td>\n",
       "      <td>0.00544991</td>\n",
       "      <td>-0.03600627</td>\n",
       "      <td>-0.00638113</td>\n",
       "      <td>-0.03022320</td>\n",
       "      <td>0.00912255</td>\n",
       "      <td>-0.04796792</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(476 [WY])</th>\n",
       "      <td>-0.04860757</td>\n",
       "      <td>0.01225382</td>\n",
       "      <td>-0.04997088</td>\n",
       "      <td>0.00551800</td>\n",
       "      <td>-0.00278532</td>\n",
       "      <td>-0.03035182</td>\n",
       "      <td>0.01706688</td>\n",
       "      <td>-0.04454498</td>\n",
       "      <td>0.02068487</td>\n",
       "      <td>0.04951635</td>\n",
       "      <td>-0.02159511</td>\n",
       "      <td>-0.01857818</td>\n",
       "      <td>-0.00272399</td>\n",
       "      <td>0.02537159</td>\n",
       "      <td>-0.01487972</td>\n",
       "      <td>-0.02650855</td>\n",
       "      <td>-0.02322527</td>\n",
       "      <td>0.00854381</td>\n",
       "      <td>0.01729339</td>\n",
       "      <td>-0.00424631</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(477 [WYN])</th>\n",
       "      <td>-0.05535480</td>\n",
       "      <td>0.02642294</td>\n",
       "      <td>0.00304198</td>\n",
       "      <td>-0.00979657</td>\n",
       "      <td>-0.00616626</td>\n",
       "      <td>-0.02917106</td>\n",
       "      <td>-0.01685758</td>\n",
       "      <td>-0.03459403</td>\n",
       "      <td>-0.04849964</td>\n",
       "      <td>-0.00712854</td>\n",
       "      <td>0.02187146</td>\n",
       "      <td>0.02073136</td>\n",
       "      <td>0.01040326</td>\n",
       "      <td>0.02075219</td>\n",
       "      <td>0.01124852</td>\n",
       "      <td>0.01453986</td>\n",
       "      <td>-0.00238598</td>\n",
       "      <td>-0.02333953</td>\n",
       "      <td>-0.03813679</td>\n",
       "      <td>-0.01729965</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(478 [WYNN])</th>\n",
       "      <td>-0.06224023</td>\n",
       "      <td>-0.03777009</td>\n",
       "      <td>0.05699242</td>\n",
       "      <td>-0.04984507</td>\n",
       "      <td>0.00327672</td>\n",
       "      <td>-0.05450320</td>\n",
       "      <td>-0.01462037</td>\n",
       "      <td>-0.13652647</td>\n",
       "      <td>-0.10365867</td>\n",
       "      <td>-0.13173507</td>\n",
       "      <td>0.08163567</td>\n",
       "      <td>-0.21150343</td>\n",
       "      <td>0.05868331</td>\n",
       "      <td>0.06970614</td>\n",
       "      <td>-0.05196868</td>\n",
       "      <td>0.00387242</td>\n",
       "      <td>-0.04243512</td>\n",
       "      <td>0.14584458</td>\n",
       "      <td>-0.02160250</td>\n",
       "      <td>0.02784411</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(479 [XEC])</th>\n",
       "      <td>-0.06269690</td>\n",
       "      <td>-0.17159839</td>\n",
       "      <td>0.01127251</td>\n",
       "      <td>-0.03690677</td>\n",
       "      <td>0.07211065</td>\n",
       "      <td>0.04236674</td>\n",
       "      <td>-0.01733099</td>\n",
       "      <td>-0.00897245</td>\n",
       "      <td>-0.00112501</td>\n",
       "      <td>-0.04073968</td>\n",
       "      <td>0.00907670</td>\n",
       "      <td>0.02197788</td>\n",
       "      <td>-0.00235914</td>\n",
       "      <td>-0.10413293</td>\n",
       "      <td>-0.05659851</td>\n",
       "      <td>0.00698281</td>\n",
       "      <td>0.06507502</td>\n",
       "      <td>-0.03724361</td>\n",
       "      <td>0.09458562</td>\n",
       "      <td>-0.06355067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(480 [XEL])</th>\n",
       "      <td>-0.02213358</td>\n",
       "      <td>0.02037290</td>\n",
       "      <td>-0.09965907</td>\n",
       "      <td>-0.04339566</td>\n",
       "      <td>-0.00356943</td>\n",
       "      <td>-0.02492177</td>\n",
       "      <td>0.01492049</td>\n",
       "      <td>0.05104677</td>\n",
       "      <td>-0.00024986</td>\n",
       "      <td>-0.02454346</td>\n",
       "      <td>0.01833627</td>\n",
       "      <td>-0.05341283</td>\n",
       "      <td>-0.00094514</td>\n",
       "      <td>-0.00603820</td>\n",
       "      <td>0.02190597</td>\n",
       "      <td>0.01882630</td>\n",
       "      <td>0.04666424</td>\n",
       "      <td>-0.00903213</td>\n",
       "      <td>-0.01793248</td>\n",
       "      <td>-0.02187933</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <td>-0.04533940</td>\n",
       "      <td>0.01070557</td>\n",
       "      <td>-0.03511721</td>\n",
       "      <td>0.04642121</td>\n",
       "      <td>-0.00584041</td>\n",
       "      <td>0.01174925</td>\n",
       "      <td>0.01268950</td>\n",
       "      <td>-0.02089065</td>\n",
       "      <td>0.01108491</td>\n",
       "      <td>-0.00002951</td>\n",
       "      <td>0.00649219</td>\n",
       "      <td>0.00964890</td>\n",
       "      <td>0.00150881</td>\n",
       "      <td>-0.00043507</td>\n",
       "      <td>0.00761630</td>\n",
       "      <td>0.01980740</td>\n",
       "      <td>-0.00239532</td>\n",
       "      <td>0.00439183</td>\n",
       "      <td>0.00478730</td>\n",
       "      <td>-0.02990849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <td>-0.04210479</td>\n",
       "      <td>-0.00382104</td>\n",
       "      <td>0.05760795</td>\n",
       "      <td>-0.01871989</td>\n",
       "      <td>-0.06972843</td>\n",
       "      <td>-0.01255928</td>\n",
       "      <td>0.09049395</td>\n",
       "      <td>0.05366728</td>\n",
       "      <td>0.00001940</td>\n",
       "      <td>0.00962152</td>\n",
       "      <td>0.01447871</td>\n",
       "      <td>0.00158716</td>\n",
       "      <td>-0.03580623</td>\n",
       "      <td>-0.04231896</td>\n",
       "      <td>0.00181517</td>\n",
       "      <td>-0.03196622</td>\n",
       "      <td>0.03741288</td>\n",
       "      <td>0.01574910</td>\n",
       "      <td>0.01153676</td>\n",
       "      <td>-0.00356961</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <td>-0.03773468</td>\n",
       "      <td>-0.05378131</td>\n",
       "      <td>-0.03367516</td>\n",
       "      <td>-0.01036477</td>\n",
       "      <td>-0.00395117</td>\n",
       "      <td>0.02952905</td>\n",
       "      <td>-0.00565158</td>\n",
       "      <td>0.04906249</td>\n",
       "      <td>0.00088748</td>\n",
       "      <td>-0.00313407</td>\n",
       "      <td>-0.00735458</td>\n",
       "      <td>-0.01169428</td>\n",
       "      <td>-0.01043934</td>\n",
       "      <td>0.01412282</td>\n",
       "      <td>0.00294557</td>\n",
       "      <td>0.00162170</td>\n",
       "      <td>-0.00342800</td>\n",
       "      <td>0.00020090</td>\n",
       "      <td>0.01687403</td>\n",
       "      <td>0.01099400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <td>-0.04417162</td>\n",
       "      <td>0.01778874</td>\n",
       "      <td>-0.00062232</td>\n",
       "      <td>0.00814416</td>\n",
       "      <td>-0.02933623</td>\n",
       "      <td>0.01859110</td>\n",
       "      <td>0.01513935</td>\n",
       "      <td>-0.00293141</td>\n",
       "      <td>-0.00639220</td>\n",
       "      <td>-0.00961472</td>\n",
       "      <td>-0.01878956</td>\n",
       "      <td>0.00117861</td>\n",
       "      <td>0.01143921</td>\n",
       "      <td>0.02296582</td>\n",
       "      <td>-0.02793926</td>\n",
       "      <td>0.01121629</td>\n",
       "      <td>0.01919676</td>\n",
       "      <td>0.00876588</td>\n",
       "      <td>0.00642508</td>\n",
       "      <td>-0.04632015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <td>-0.05418096</td>\n",
       "      <td>-0.00344402</td>\n",
       "      <td>0.01002127</td>\n",
       "      <td>0.02970039</td>\n",
       "      <td>-0.04632628</td>\n",
       "      <td>0.01414044</td>\n",
       "      <td>0.01545251</td>\n",
       "      <td>0.03333709</td>\n",
       "      <td>-0.00135931</td>\n",
       "      <td>-0.03201206</td>\n",
       "      <td>-0.00734704</td>\n",
       "      <td>-0.01939525</td>\n",
       "      <td>-0.03311336</td>\n",
       "      <td>0.01935188</td>\n",
       "      <td>-0.01054766</td>\n",
       "      <td>-0.01290216</td>\n",
       "      <td>0.00201605</td>\n",
       "      <td>-0.04985274</td>\n",
       "      <td>0.01793994</td>\n",
       "      <td>0.00479490</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <td>-0.02818794</td>\n",
       "      <td>-0.01716654</td>\n",
       "      <td>0.03265041</td>\n",
       "      <td>-0.01947782</td>\n",
       "      <td>-0.00285062</td>\n",
       "      <td>0.00871286</td>\n",
       "      <td>-0.01890190</td>\n",
       "      <td>0.06660934</td>\n",
       "      <td>-0.02402818</td>\n",
       "      <td>0.03615542</td>\n",
       "      <td>-0.02489678</td>\n",
       "      <td>-0.03952974</td>\n",
       "      <td>-0.00893752</td>\n",
       "      <td>-0.04100900</td>\n",
       "      <td>-0.05929686</td>\n",
       "      <td>-0.02252246</td>\n",
       "      <td>0.00386450</td>\n",
       "      <td>0.05219156</td>\n",
       "      <td>-0.00186580</td>\n",
       "      <td>0.05441990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <td>-0.03630261</td>\n",
       "      <td>0.02726147</td>\n",
       "      <td>0.00226078</td>\n",
       "      <td>-0.02614446</td>\n",
       "      <td>-0.01418715</td>\n",
       "      <td>0.00133025</td>\n",
       "      <td>-0.04157802</td>\n",
       "      <td>0.00019894</td>\n",
       "      <td>-0.03044394</td>\n",
       "      <td>-0.02775688</td>\n",
       "      <td>0.01271447</td>\n",
       "      <td>0.00271408</td>\n",
       "      <td>-0.01200272</td>\n",
       "      <td>0.00932624</td>\n",
       "      <td>-0.00005225</td>\n",
       "      <td>-0.00468941</td>\n",
       "      <td>-0.01662647</td>\n",
       "      <td>0.02205328</td>\n",
       "      <td>-0.01199279</td>\n",
       "      <td>0.00115887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <td>-0.03843904</td>\n",
       "      <td>0.01749339</td>\n",
       "      <td>-0.01575191</td>\n",
       "      <td>-0.01540767</td>\n",
       "      <td>-0.00162146</td>\n",
       "      <td>0.04604261</td>\n",
       "      <td>0.00107874</td>\n",
       "      <td>-0.00766365</td>\n",
       "      <td>0.00943143</td>\n",
       "      <td>-0.01277863</td>\n",
       "      <td>-0.06644996</td>\n",
       "      <td>-0.01100012</td>\n",
       "      <td>-0.02664681</td>\n",
       "      <td>0.01836548</td>\n",
       "      <td>-0.04714543</td>\n",
       "      <td>0.01374424</td>\n",
       "      <td>0.01186193</td>\n",
       "      <td>0.04031331</td>\n",
       "      <td>0.00879184</td>\n",
       "      <td>-0.01484402</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <td>-0.06092493</td>\n",
       "      <td>-0.01044197</td>\n",
       "      <td>0.01261759</td>\n",
       "      <td>0.13419142</td>\n",
       "      <td>0.02396310</td>\n",
       "      <td>0.09232402</td>\n",
       "      <td>-0.04478132</td>\n",
       "      <td>-0.03030916</td>\n",
       "      <td>0.03197336</td>\n",
       "      <td>-0.01090927</td>\n",
       "      <td>0.04084895</td>\n",
       "      <td>-0.01636158</td>\n",
       "      <td>-0.01118895</td>\n",
       "      <td>-0.03544956</td>\n",
       "      <td>0.00573891</td>\n",
       "      <td>-0.00389368</td>\n",
       "      <td>0.00647629</td>\n",
       "      <td>0.00388208</td>\n",
       "      <td>-0.02151701</td>\n",
       "      <td>0.02384011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "      <td>-0.01367163</td>\n",
       "      <td>0.01892192</td>\n",
       "      <td>0.01867876</td>\n",
       "      <td>-0.04878703</td>\n",
       "      <td>0.01263795</td>\n",
       "      <td>0.04832049</td>\n",
       "      <td>-0.00205428</td>\n",
       "      <td>0.01615079</td>\n",
       "      <td>-0.01921110</td>\n",
       "      <td>-0.03073887</td>\n",
       "      <td>-0.04023624</td>\n",
       "      <td>-0.03107603</td>\n",
       "      <td>-0.05614105</td>\n",
       "      <td>-0.01543526</td>\n",
       "      <td>0.00095279</td>\n",
       "      <td>-0.02374917</td>\n",
       "      <td>-0.01037676</td>\n",
       "      <td>0.03704506</td>\n",
       "      <td>0.00793585</td>\n",
       "      <td>0.01579262</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>490 rows × 20 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            0           1           2           3   \\\n",
       "Equity(0 [A])      -0.04316847  0.01955111 -0.00993370  0.01054035   \n",
       "Equity(1 [AAL])    -0.05874471  0.19637679  0.07868760  0.08209550   \n",
       "Equity(2 [AAP])    -0.03433256  0.03451502  0.01133837 -0.02543653   \n",
       "Equity(3 [AAPL])   -0.03409988 -0.00139319  0.03946703 -0.01721336   \n",
       "Equity(4 [ABBV])   -0.01803099  0.02568151  0.00435185 -0.07078157   \n",
       "Equity(5 [ABC])    -0.02890016  0.03259161 -0.00742075 -0.03355188   \n",
       "Equity(6 [ABT])    -0.02905740  0.02977821 -0.02970868 -0.03574271   \n",
       "Equity(7 [ACN])    -0.04337745  0.00256907  0.00413231 -0.00349272   \n",
       "Equity(8 [ADBE])   -0.04730285  0.02661175  0.03057071 -0.02114663   \n",
       "Equity(9 [ADI])    -0.04712287 -0.00381150  0.05600848 -0.01553771   \n",
       "Equity(10 [ADM])   -0.04375945 -0.01130045 -0.03457005  0.00400569   \n",
       "Equity(11 [ADP])   -0.03648136  0.02528125 -0.01114830 -0.00940999   \n",
       "Equity(12 [ADS])   -0.04136654  0.01659887  0.01716323 -0.02418703   \n",
       "Equity(13 [ADSK])  -0.06028785  0.01995266  0.05164356  0.00105688   \n",
       "Equity(14 [AEE])   -0.02646901  0.02222316 -0.10715000 -0.03824478   \n",
       "Equity(15 [AEP])   -0.02263370  0.01880106 -0.10030312 -0.04210439   \n",
       "Equity(16 [AES])   -0.04557539 -0.01859286 -0.06960049 -0.02023065   \n",
       "Equity(17 [AET])   -0.04072498  0.02731997 -0.00507230 -0.02802245   \n",
       "Equity(18 [AFL])   -0.05336864  0.00134653 -0.02782497  0.06689006   \n",
       "Equity(19 [AGN])   -0.03534102  0.04465091  0.02264082 -0.09556032   \n",
       "Equity(20 [AIG])   -0.05982324  0.00588515 -0.01162876  0.06668341   \n",
       "Equity(21 [AIV])   -0.04111735  0.03100207 -0.10211708 -0.00919329   \n",
       "Equity(22 [AIZ])   -0.04150874  0.01695771 -0.03297298  0.04770325   \n",
       "Equity(23 [AJG])   -0.03351812  0.01723113 -0.02538600  0.01303828   \n",
       "Equity(24 [AKAM])  -0.05587884  0.00798597  0.06670049 -0.00705487   \n",
       "Equity(25 [ALB])   -0.05982022 -0.03657576  0.01798660  0.01363551   \n",
       "Equity(26 [ALGN])  -0.05959262  0.01420686  0.04030663 -0.00223707   \n",
       "Equity(27 [ALK])   -0.04887994  0.12134700  0.03971833  0.02356253   \n",
       "Equity(28 [ALL])   -0.03960459  0.01388579 -0.04298738  0.04705241   \n",
       "Equity(29 [ALLE])  -0.01215236  0.01485340  0.01783513 -0.02151473   \n",
       "...                        ...         ...         ...         ...   \n",
       "Equity(460 [VRSN]) -0.03899324  0.01109333  0.04065348 -0.01351031   \n",
       "Equity(461 [VRTX]) -0.04909379  0.09821506  0.07490356 -0.22874283   \n",
       "Equity(462 [VTR])  -0.03291326  0.03068907 -0.12174008 -0.03757315   \n",
       "Equity(463 [VZ])   -0.07033190  0.00068427 -0.01610415  0.05981359   \n",
       "Equity(464 [WAT])  -0.04787963  0.01976102  0.00630831 -0.01309637   \n",
       "Equity(465 [WBA])  -0.03065220  0.03421533 -0.01027999 -0.04006666   \n",
       "Equity(466 [WDC])  -0.05340806 -0.00776436  0.06117299 -0.01397329   \n",
       "Equity(467 [WEC])  -0.02279115  0.02557593 -0.10491697 -0.04691483   \n",
       "Equity(468 [WFC])  -0.05131308  0.01109305 -0.03096455  0.08514610   \n",
       "Equity(469 [WHR])  -0.05507142  0.03637282 -0.00100605  0.00590475   \n",
       "Equity(471 [WM])   -0.03151644  0.01496675 -0.03234350 -0.00111925   \n",
       "Equity(472 [WMB])  -0.05476156 -0.08924997 -0.02426236 -0.05723848   \n",
       "Equity(473 [WMT])  -0.01988671  0.03467415 -0.04017191 -0.00769656   \n",
       "Equity(474 [WRK])  -0.00563001 -0.00526226  0.00630658 -0.00994054   \n",
       "Equity(475 [WU])   -0.04059879  0.00365919  0.01271943  0.00231518   \n",
       "Equity(476 [WY])   -0.04860757  0.01225382 -0.04997088  0.00551800   \n",
       "Equity(477 [WYN])  -0.05535480  0.02642294  0.00304198 -0.00979657   \n",
       "Equity(478 [WYNN]) -0.06224023 -0.03777009  0.05699242 -0.04984507   \n",
       "Equity(479 [XEC])  -0.06269690 -0.17159839  0.01127251 -0.03690677   \n",
       "Equity(480 [XEL])  -0.02213358  0.02037290 -0.09965907 -0.04339566   \n",
       "Equity(481 [XL])   -0.04533940  0.01070557 -0.03511721  0.04642121   \n",
       "Equity(482 [XLNX]) -0.04210479 -0.00382104  0.05760795 -0.01871989   \n",
       "Equity(483 [XOM])  -0.03773468 -0.05378131 -0.03367516 -0.01036477   \n",
       "Equity(484 [XRAY]) -0.04417162  0.01778874 -0.00062232  0.00814416   \n",
       "Equity(485 [XRX])  -0.05418096 -0.00344402  0.01002127  0.02970039   \n",
       "Equity(486 [XYL])  -0.02818794 -0.01716654  0.03265041 -0.01947782   \n",
       "Equity(487 [YUM])  -0.03630261  0.02726147  0.00226078 -0.02614446   \n",
       "Equity(488 [ZBH])  -0.03843904  0.01749339 -0.01575191 -0.01540767   \n",
       "Equity(489 [ZION]) -0.06092493 -0.01044197  0.01261759  0.13419142   \n",
       "Equity(490 [ZTS])  -0.01367163  0.01892192  0.01867876 -0.04878703   \n",
       "\n",
       "                            4           5           6           7   \\\n",
       "Equity(0 [A])      -0.01819985  0.01073764  0.00112177  0.03974072   \n",
       "Equity(1 [AAL])     0.34847488 -0.13808183  0.07129350  0.10524542   \n",
       "Equity(2 [AAP])    -0.00816998 -0.01319151 -0.06095808  0.00654306   \n",
       "Equity(3 [AAPL])   -0.03047267 -0.01756803  0.02323525  0.01144347   \n",
       "Equity(4 [ABBV])    0.01319952  0.05428235 -0.01567069  0.04047295   \n",
       "Equity(5 [ABC])    -0.01152096  0.02648412  0.01084806 -0.00571080   \n",
       "Equity(6 [ABT])    -0.01157427  0.06020054 -0.02003896  0.04098347   \n",
       "Equity(7 [ACN])    -0.05430895  0.00537768  0.00277692  0.03044656   \n",
       "Equity(8 [ADBE])   -0.04838637 -0.00708309  0.00743084  0.00750241   \n",
       "Equity(9 [ADI])    -0.06946368 -0.00560496  0.10070937  0.06305665   \n",
       "Equity(10 [ADM])   -0.00645260  0.01746974 -0.00145658  0.04179348   \n",
       "Equity(11 [ADP])   -0.03357747  0.02887549 -0.00509644  0.04466659   \n",
       "Equity(12 [ADS])   -0.00389623  0.00098179 -0.02299730  0.01316862   \n",
       "Equity(13 [ADSK])  -0.06889048 -0.04892382  0.04706101 -0.02743203   \n",
       "Equity(14 [AEE])   -0.00157829 -0.02310360  0.02412562  0.04418713   \n",
       "Equity(15 [AEP])    0.00205689 -0.03150356  0.02496800  0.05473636   \n",
       "Equity(16 [AES])    0.01303813 -0.01748349  0.02894893  0.03054182   \n",
       "Equity(17 [AET])   -0.00180926  0.06385466  0.00043775 -0.03712771   \n",
       "Equity(18 [AFL])   -0.01354929  0.04111617 -0.00400456 -0.01389035   \n",
       "Equity(19 [AGN])    0.02867984  0.06515341 -0.02262966 -0.01928881   \n",
       "Equity(20 [AIG])    0.01385522  0.04009833 -0.01874201 -0.02395295   \n",
       "Equity(21 [AIV])    0.01055478 -0.04739106  0.05244775 -0.09495966   \n",
       "Equity(22 [AIZ])   -0.00003356  0.04220339 -0.00296063  0.01715736   \n",
       "Equity(23 [AJG])   -0.00670142  0.02117802 -0.01016105  0.00116861   \n",
       "Equity(24 [AKAM])  -0.05149317 -0.04836921  0.02744500 -0.00621882   \n",
       "Equity(25 [ALB])   -0.01736151 -0.03080528  0.04203556  0.00602659   \n",
       "Equity(26 [ALGN])   0.00379440  0.03560304  0.04026342 -0.09390897   \n",
       "Equity(27 [ALK])    0.12647955 -0.05703493  0.02167528  0.06426832   \n",
       "Equity(28 [ALL])   -0.00072861  0.03487481 -0.01156125  0.00876464   \n",
       "Equity(29 [ALLE])   0.00049760  0.02208186 -0.01397111  0.04559501   \n",
       "...                        ...         ...         ...         ...   \n",
       "Equity(460 [VRSN]) -0.03907012  0.00844579  0.01231571 -0.02029448   \n",
       "Equity(461 [VRTX])  0.18285899  0.29795861  0.16782869 -0.08586009   \n",
       "Equity(462 [VTR])  -0.00091452 -0.05384970  0.03087987 -0.06663601   \n",
       "Equity(463 [VZ])   -0.01922504  0.03299010 -0.00089756 -0.00204495   \n",
       "Equity(464 [WAT])  -0.02786496  0.02969204  0.01136657 -0.01290647   \n",
       "Equity(465 [WBA])  -0.01725513  0.02037521 -0.00924148  0.04976091   \n",
       "Equity(466 [WDC])  -0.02898334 -0.05152195  0.10653754  0.00361593   \n",
       "Equity(467 [WEC])  -0.00109182 -0.02887381  0.01886363  0.05105385   \n",
       "Equity(468 [WFC])   0.00399854  0.06169066 -0.01917657 -0.00979766   \n",
       "Equity(469 [WHR])   0.01093083 -0.06423518 -0.05592622  0.02532514   \n",
       "Equity(471 [WM])   -0.02960382  0.00379336 -0.00185484  0.01332233   \n",
       "Equity(472 [WMB])   0.07886918 -0.01255106 -0.03518221  0.02303604   \n",
       "Equity(473 [WMT])  -0.01460187  0.00726739 -0.02276118  0.03830017   \n",
       "Equity(474 [WRK])   0.00615540  0.01085324  0.00187943  0.01707617   \n",
       "Equity(475 [WU])   -0.01726751  0.03142876  0.02343821  0.01430728   \n",
       "Equity(476 [WY])   -0.00278532 -0.03035182  0.01706688 -0.04454498   \n",
       "Equity(477 [WYN])  -0.00616626 -0.02917106 -0.01685758 -0.03459403   \n",
       "Equity(478 [WYNN])  0.00327672 -0.05450320 -0.01462037 -0.13652647   \n",
       "Equity(479 [XEC])   0.07211065  0.04236674 -0.01733099 -0.00897245   \n",
       "Equity(480 [XEL])  -0.00356943 -0.02492177  0.01492049  0.05104677   \n",
       "Equity(481 [XL])   -0.00584041  0.01174925  0.01268950 -0.02089065   \n",
       "Equity(482 [XLNX]) -0.06972843 -0.01255928  0.09049395  0.05366728   \n",
       "Equity(483 [XOM])  -0.00395117  0.02952905 -0.00565158  0.04906249   \n",
       "Equity(484 [XRAY]) -0.02933623  0.01859110  0.01513935 -0.00293141   \n",
       "Equity(485 [XRX])  -0.04632628  0.01414044  0.01545251  0.03333709   \n",
       "Equity(486 [XYL])  -0.00285062  0.00871286 -0.01890190  0.06660934   \n",
       "Equity(487 [YUM])  -0.01418715  0.00133025 -0.04157802  0.00019894   \n",
       "Equity(488 [ZBH])  -0.00162146  0.04604261  0.00107874 -0.00766365   \n",
       "Equity(489 [ZION])  0.02396310  0.09232402 -0.04478132 -0.03030916   \n",
       "Equity(490 [ZTS])   0.01263795  0.04832049 -0.00205428  0.01615079   \n",
       "\n",
       "                            8           9           10          11  \\\n",
       "Equity(0 [A])      -0.01375579  0.01287564 -0.02384754 -0.00149654   \n",
       "Equity(1 [AAL])    -0.04587567 -0.08549499  0.00322218  0.10550489   \n",
       "Equity(2 [AAP])    -0.03261635 -0.01342214  0.02901137  0.03837749   \n",
       "Equity(3 [AAPL])   -0.02655168 -0.00768524  0.02688303  0.00705191   \n",
       "Equity(4 [ABBV])   -0.01250395 -0.03521164 -0.05132587 -0.04068715   \n",
       "Equity(5 [ABC])     0.01354572 -0.02969061 -0.03158625  0.01717923   \n",
       "Equity(6 [ABT])    -0.01802725 -0.00617438 -0.03158237 -0.02319143   \n",
       "Equity(7 [ACN])    -0.01880501 -0.00178051 -0.03539564 -0.01105793   \n",
       "Equity(8 [ADBE])    0.01484313 -0.00155567 -0.01231848 -0.00685361   \n",
       "Equity(9 [ADI])     0.00162851  0.01915833  0.01085946  0.00351036   \n",
       "Equity(10 [ADM])   -0.00478565 -0.01859306  0.00419106 -0.00952956   \n",
       "Equity(11 [ADP])   -0.00673989  0.00340349 -0.00495277  0.00187489   \n",
       "Equity(12 [ADS])   -0.02791268  0.00654326  0.00632701 -0.00342705   \n",
       "Equity(13 [ADSK])   0.00281949  0.00519804 -0.01130461 -0.00124711   \n",
       "Equity(14 [AEE])    0.00039877 -0.02601425  0.02324394 -0.05447119   \n",
       "Equity(15 [AEP])    0.00164053 -0.02267575  0.01764113 -0.04783703   \n",
       "Equity(16 [AES])   -0.01234187 -0.02634054  0.00389523 -0.05876228   \n",
       "Equity(17 [AET])    0.00998663 -0.09653393 -0.04571296  0.04510895   \n",
       "Equity(18 [AFL])    0.01361193  0.00340342 -0.00990063 -0.00929392   \n",
       "Equity(19 [AGN])   -0.02384119 -0.02586432 -0.02641574 -0.00721757   \n",
       "Equity(20 [AIG])    0.01456997  0.02059392 -0.00590146 -0.01871433   \n",
       "Equity(21 [AIV])    0.04962104  0.00393936  0.02494902  0.02542252   \n",
       "Equity(22 [AIZ])    0.02194816 -0.01976910  0.00850007 -0.00200901   \n",
       "Equity(23 [AJG])    0.00769209  0.00436542 -0.00824245  0.01517760   \n",
       "Equity(24 [AKAM])   0.02663756 -0.01162011  0.00102594 -0.06362917   \n",
       "Equity(25 [ALB])   -0.02056881  0.03716029 -0.00124284  0.01925145   \n",
       "Equity(26 [ALGN])   0.03526819  0.01022778 -0.07460127  0.02151785   \n",
       "Equity(27 [ALK])   -0.01673719 -0.02363509 -0.00069417  0.06373686   \n",
       "Equity(28 [ALL])   -0.00076414 -0.00132343  0.01284531 -0.00675485   \n",
       "Equity(29 [ALLE])  -0.01576268  0.00228715 -0.01535328 -0.02635498   \n",
       "...                        ...         ...         ...         ...   \n",
       "Equity(460 [VRSN]) -0.01425848 -0.00827544 -0.02486401  0.02083316   \n",
       "Equity(461 [VRTX])  0.17243108  0.26887825  0.58246216 -0.03513102   \n",
       "Equity(462 [VTR])   0.04681692  0.00815671 -0.00369202  0.02305367   \n",
       "Equity(463 [VZ])    0.03346171 -0.00820226  0.01312502 -0.01339633   \n",
       "Equity(464 [WAT])   0.02280008  0.00205507 -0.05579844  0.02565708   \n",
       "Equity(465 [WBA])  -0.02417771 -0.02909557 -0.01700641 -0.00987924   \n",
       "Equity(466 [WDC])  -0.00174693 -0.01746300  0.03052392 -0.00871879   \n",
       "Equity(467 [WEC])   0.01033637 -0.02586146  0.02237280 -0.04426359   \n",
       "Equity(468 [WFC])   0.02013085  0.00923565  0.02751783 -0.01820251   \n",
       "Equity(469 [WHR])  -0.04218988  0.13437383 -0.01639614  0.01577426   \n",
       "Equity(471 [WM])   -0.00243167 -0.00944590  0.00285446  0.00919116   \n",
       "Equity(472 [WMB])  -0.03169316 -0.02925053  0.00880337  0.01967529   \n",
       "Equity(473 [WMT])  -0.01129067 -0.00759721  0.00867462  0.00365705   \n",
       "Equity(474 [WRK])  -0.00686116 -0.00780335  0.00361935 -0.02965762   \n",
       "Equity(475 [WU])   -0.02395318 -0.00790029 -0.02324971 -0.00988128   \n",
       "Equity(476 [WY])    0.02068487  0.04951635 -0.02159511 -0.01857818   \n",
       "Equity(477 [WYN])  -0.04849964 -0.00712854  0.02187146  0.02073136   \n",
       "Equity(478 [WYNN]) -0.10365867 -0.13173507  0.08163567 -0.21150343   \n",
       "Equity(479 [XEC])  -0.00112501 -0.04073968  0.00907670  0.02197788   \n",
       "Equity(480 [XEL])  -0.00024986 -0.02454346  0.01833627 -0.05341283   \n",
       "Equity(481 [XL])    0.01108491 -0.00002951  0.00649219  0.00964890   \n",
       "Equity(482 [XLNX])  0.00001940  0.00962152  0.01447871  0.00158716   \n",
       "Equity(483 [XOM])   0.00088748 -0.00313407 -0.00735458 -0.01169428   \n",
       "Equity(484 [XRAY]) -0.00639220 -0.00961472 -0.01878956  0.00117861   \n",
       "Equity(485 [XRX])  -0.00135931 -0.03201206 -0.00734704 -0.01939525   \n",
       "Equity(486 [XYL])  -0.02402818  0.03615542 -0.02489678 -0.03952974   \n",
       "Equity(487 [YUM])  -0.03044394 -0.02775688  0.01271447  0.00271408   \n",
       "Equity(488 [ZBH])   0.00943143 -0.01277863 -0.06644996 -0.01100012   \n",
       "Equity(489 [ZION])  0.03197336 -0.01090927  0.04084895 -0.01636158   \n",
       "Equity(490 [ZTS])  -0.01921110 -0.03073887 -0.04023624 -0.03107603   \n",
       "\n",
       "                            12          13          14          15  \\\n",
       "Equity(0 [A])       0.02121142  0.03473276 -0.03061362  0.03345186   \n",
       "Equity(1 [AAL])     0.06748921 -0.04415964 -0.02178161  0.01567381   \n",
       "Equity(2 [AAP])    -0.05006282 -0.00488237 -0.02132017  0.03016017   \n",
       "Equity(3 [AAPL])    0.00529323  0.01265877  0.05178885 -0.07356573   \n",
       "Equity(4 [ABBV])   -0.05090663 -0.01873979 -0.01149224 -0.04213666   \n",
       "Equity(5 [ABC])    -0.00314009  0.02642881  0.00800301  0.00834448   \n",
       "Equity(6 [ABT])    -0.01415907 -0.00040762 -0.01895333  0.01377189   \n",
       "Equity(7 [ACN])     0.02637767 -0.01248730  0.00269523  0.01779118   \n",
       "Equity(8 [ADBE])    0.03507154 -0.04370220  0.00926058 -0.00451387   \n",
       "Equity(9 [ADI])    -0.05447743 -0.04206121  0.00068269 -0.04961729   \n",
       "Equity(10 [ADM])   -0.01348503  0.01732993  0.00984216  0.02389138   \n",
       "Equity(11 [ADP])   -0.01034098 -0.00603492 -0.00343086 -0.00251332   \n",
       "Equity(12 [ADS])    0.01588025 -0.02303402  0.01772651  0.00312095   \n",
       "Equity(13 [ADSK])   0.04049696 -0.03307856  0.01896776  0.02300794   \n",
       "Equity(14 [AEE])    0.00727577 -0.00898009  0.02849351  0.02625939   \n",
       "Equity(15 [AEP])   -0.01348955 -0.00613214  0.03470989  0.02729481   \n",
       "Equity(16 [AES])   -0.01470544  0.01031992  0.04757450  0.00921931   \n",
       "Equity(17 [AET])   -0.08452010  0.06459938 -0.07278192  0.00873776   \n",
       "Equity(18 [AFL])    0.01344626 -0.00683515  0.00052534  0.00044048   \n",
       "Equity(19 [AGN])   -0.01425313  0.01705316  0.00875420  0.01851321   \n",
       "Equity(20 [AIG])   -0.00572274 -0.02829507  0.03209348 -0.01045613   \n",
       "Equity(21 [AIV])    0.02085436 -0.04196728 -0.02049296 -0.03746101   \n",
       "Equity(22 [AIZ])   -0.02140440 -0.00999084  0.02916537  0.01098524   \n",
       "Equity(23 [AJG])   -0.00139564 -0.00791261 -0.00515837 -0.00153118   \n",
       "Equity(24 [AKAM])  -0.07364306  0.00252926  0.12394521  0.13798635   \n",
       "Equity(25 [ALB])    0.03966397  0.09132582 -0.06629776 -0.01452511   \n",
       "Equity(26 [ALGN])   0.11040929  0.07188677 -0.05715082 -0.07080753   \n",
       "Equity(27 [ALK])    0.00105735  0.00617074  0.01425294  0.02200355   \n",
       "Equity(28 [ALL])   -0.01020924 -0.00905214  0.02515899 -0.00495540   \n",
       "Equity(29 [ALLE])  -0.00614175 -0.04124249 -0.00833594 -0.01916313   \n",
       "...                        ...         ...         ...         ...   \n",
       "Equity(460 [VRSN])  0.00109034  0.01375702  0.02222061  0.03581243   \n",
       "Equity(461 [VRTX]) -0.12605830  0.36186726 -0.14247243 -0.10293613   \n",
       "Equity(462 [VTR])   0.02490274 -0.03305801 -0.01335867 -0.02071862   \n",
       "Equity(463 [VZ])    0.00422768 -0.00896355  0.00608561 -0.01704633   \n",
       "Equity(464 [WAT])   0.02276935  0.01129024 -0.03670103  0.03038893   \n",
       "Equity(465 [WBA])  -0.02952565 -0.00838890 -0.02429464  0.01784314   \n",
       "Equity(466 [WDC])  -0.11251380  0.02958820  0.13568735  0.17143039   \n",
       "Equity(467 [WEC])   0.00092207 -0.01730092  0.02238761  0.01457791   \n",
       "Equity(468 [WFC])  -0.00862624 -0.02237534  0.02426574  0.00327885   \n",
       "Equity(469 [WHR])  -0.05529682  0.04102912  0.04136107  0.02998499   \n",
       "Equity(471 [WM])   -0.00711037  0.03206951 -0.01152127  0.03659853   \n",
       "Equity(472 [WMB])  -0.01092052 -0.00323985  0.03821428 -0.02458367   \n",
       "Equity(473 [WMT])  -0.04322062  0.02467927  0.01322268  0.01162737   \n",
       "Equity(474 [WRK])  -0.02063825  0.00904419  0.00185310 -0.01843328   \n",
       "Equity(475 [WU])   -0.00295607 -0.02107737  0.00544991 -0.03600627   \n",
       "Equity(476 [WY])   -0.00272399  0.02537159 -0.01487972 -0.02650855   \n",
       "Equity(477 [WYN])   0.01040326  0.02075219  0.01124852  0.01453986   \n",
       "Equity(478 [WYNN])  0.05868331  0.06970614 -0.05196868  0.00387242   \n",
       "Equity(479 [XEC])  -0.00235914 -0.10413293 -0.05659851  0.00698281   \n",
       "Equity(480 [XEL])  -0.00094514 -0.00603820  0.02190597  0.01882630   \n",
       "Equity(481 [XL])    0.00150881 -0.00043507  0.00761630  0.01980740   \n",
       "Equity(482 [XLNX]) -0.03580623 -0.04231896  0.00181517 -0.03196622   \n",
       "Equity(483 [XOM])  -0.01043934  0.01412282  0.00294557  0.00162170   \n",
       "Equity(484 [XRAY])  0.01143921  0.02296582 -0.02793926  0.01121629   \n",
       "Equity(485 [XRX])  -0.03311336  0.01935188 -0.01054766 -0.01290216   \n",
       "Equity(486 [XYL])  -0.00893752 -0.04100900 -0.05929686 -0.02252246   \n",
       "Equity(487 [YUM])  -0.01200272  0.00932624 -0.00005225 -0.00468941   \n",
       "Equity(488 [ZBH])  -0.02664681  0.01836548 -0.04714543  0.01374424   \n",
       "Equity(489 [ZION]) -0.01118895 -0.03544956  0.00573891 -0.00389368   \n",
       "Equity(490 [ZTS])  -0.05614105 -0.01543526  0.00095279 -0.02374917   \n",
       "\n",
       "                            16          17          18          19  \n",
       "Equity(0 [A])      -0.01217392 -0.01009196  0.00631111 -0.00651501  \n",
       "Equity(1 [AAL])    -0.03204526  0.01570165 -0.04607693 -0.01415149  \n",
       "Equity(2 [AAP])    -0.01145684  0.04795064  0.05769756  0.08529023  \n",
       "Equity(3 [AAPL])   -0.03228226  0.09406169 -0.00988035  0.04455273  \n",
       "Equity(4 [ABBV])    0.01814236  0.04457503  0.01684312  0.06711364  \n",
       "Equity(5 [ABC])    -0.01875213 -0.01385140  0.00993866 -0.02800522  \n",
       "Equity(6 [ABT])    -0.03944285  0.01212353  0.01796965  0.00391765  \n",
       "Equity(7 [ACN])    -0.00435989 -0.00927531 -0.01499190 -0.03729018  \n",
       "Equity(8 [ADBE])    0.01929702 -0.03490402 -0.00095678 -0.04831866  \n",
       "Equity(9 [ADI])     0.00679634  0.04489691  0.01736766  0.00956659  \n",
       "Equity(10 [ADM])   -0.02011735 -0.00202790  0.00185389 -0.00812939  \n",
       "Equity(11 [ADP])   -0.00376246  0.00696626  0.00618101 -0.02328252  \n",
       "Equity(12 [ADS])   -0.01220245 -0.02474724 -0.01935921  0.02634492  \n",
       "Equity(13 [ADSK])   0.05413420 -0.06374657 -0.03730318 -0.02989322  \n",
       "Equity(14 [AEE])    0.03526974 -0.00824192 -0.03313521 -0.03297992  \n",
       "Equity(15 [AEP])    0.03984473  0.00476357 -0.01668101 -0.01586625  \n",
       "Equity(16 [AES])    0.00953939 -0.02372752 -0.05813816 -0.01956474  \n",
       "Equity(17 [AET])    0.01549979  0.00749589  0.00340799 -0.04664053  \n",
       "Equity(18 [AFL])    0.00044783  0.00338429  0.01684353 -0.03281822  \n",
       "Equity(19 [AGN])   -0.02064573  0.02339983 -0.02085429  0.01701517  \n",
       "Equity(20 [AIG])   -0.00962788 -0.05113832 -0.01506476 -0.00436047  \n",
       "Equity(21 [AIV])   -0.01450691  0.02374203  0.04525892  0.06318124  \n",
       "Equity(22 [AIZ])    0.00853705 -0.01306887  0.00099193  0.00654670  \n",
       "Equity(23 [AJG])   -0.00446795 -0.01399511 -0.00468465  0.01136640  \n",
       "Equity(24 [AKAM])   0.01092964 -0.00493021 -0.01019312  0.05572339  \n",
       "Equity(25 [ALB])   -0.04443369 -0.02957625 -0.03315314  0.04803426  \n",
       "Equity(26 [ALGN])   0.04694717  0.01636119 -0.02588599  0.01263746  \n",
       "Equity(27 [ALK])    0.04102878  0.01167443  0.05125948 -0.03906276  \n",
       "Equity(28 [ALL])   -0.00061372 -0.00042675  0.00165531 -0.00705429  \n",
       "Equity(29 [ALLE])  -0.00932486  0.03663948  0.00701798  0.03355151  \n",
       "...                        ...         ...         ...         ...  \n",
       "Equity(460 [VRSN]) -0.00885366 -0.00359890 -0.02729625  0.00271635  \n",
       "Equity(461 [VRTX])  0.15443334  0.00431922  0.05188559 -0.09783374  \n",
       "Equity(462 [VTR])  -0.01954732 -0.00673414  0.04199869  0.02970671  \n",
       "Equity(463 [VZ])    0.00259388 -0.03296249 -0.03614266 -0.02091311  \n",
       "Equity(464 [WAT])  -0.00919974  0.04816862 -0.01481828 -0.03010232  \n",
       "Equity(465 [WBA])   0.02999816  0.02996985  0.01267287  0.00747609  \n",
       "Equity(466 [WDC])   0.10840725 -0.22910643 -0.05503372  0.26692166  \n",
       "Equity(467 [WEC])   0.04751704 -0.01035507 -0.01679387 -0.01901844  \n",
       "Equity(468 [WFC])  -0.00421611  0.00340445 -0.02556188  0.01076139  \n",
       "Equity(469 [WHR])   0.04759629  0.02259315  0.01328537  0.01088077  \n",
       "Equity(471 [WM])    0.01800341 -0.02180578  0.02329823  0.00863871  \n",
       "Equity(472 [WMB])  -0.02991669 -0.02019306 -0.10291795 -0.01731531  \n",
       "Equity(473 [WMT])  -0.02496203  0.00434721  0.00800293  0.01167021  \n",
       "Equity(474 [WRK])  -0.01246073  0.02326707 -0.02083906  0.04109270  \n",
       "Equity(475 [WU])   -0.00638113 -0.03022320  0.00912255 -0.04796792  \n",
       "Equity(476 [WY])   -0.02322527  0.00854381  0.01729339 -0.00424631  \n",
       "Equity(477 [WYN])  -0.00238598 -0.02333953 -0.03813679 -0.01729965  \n",
       "Equity(478 [WYNN]) -0.04243512  0.14584458 -0.02160250  0.02784411  \n",
       "Equity(479 [XEC])   0.06507502 -0.03724361  0.09458562 -0.06355067  \n",
       "Equity(480 [XEL])   0.04666424 -0.00903213 -0.01793248 -0.02187933  \n",
       "Equity(481 [XL])   -0.00239532  0.00439183  0.00478730 -0.02990849  \n",
       "Equity(482 [XLNX])  0.03741288  0.01574910  0.01153676 -0.00356961  \n",
       "Equity(483 [XOM])  -0.00342800  0.00020090  0.01687403  0.01099400  \n",
       "Equity(484 [XRAY])  0.01919676  0.00876588  0.00642508 -0.04632015  \n",
       "Equity(485 [XRX])   0.00201605 -0.04985274  0.01793994  0.00479490  \n",
       "Equity(486 [XYL])   0.00386450  0.05219156 -0.00186580  0.05441990  \n",
       "Equity(487 [YUM])  -0.01662647  0.02205328 -0.01199279  0.00115887  \n",
       "Equity(488 [ZBH])   0.01186193  0.04031331  0.00879184 -0.01484402  \n",
       "Equity(489 [ZION])  0.00647629  0.00388208 -0.02151701  0.02384011  \n",
       "Equity(490 [ZTS])  -0.01037676  0.03704506  0.00793585  0.01579262  \n",
       "\n",
       "[490 rows x 20 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "risk_model = {}\n",
    "risk_model['factor_betas'] = factor_betas(pca, five_year_returns.columns.values, np.arange(num_factor_exposures))\n",
    "\n",
    "risk_model['factor_betas']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Factor Returns\n",
    "Implement `factor_returns` to get the factor returns from the PCA model using the returns data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                     0           1           2\n",
      "2001-03-18 -0.49503261  1.45332369 -0.08980631\n",
      "2001-03-19 -1.87563271  0.67894147 -1.11984992\n",
      "2001-03-20 -0.13027172 -0.49001128  1.67259298\n",
      "2001-03-21 -0.25392567  0.47320133  0.04528734\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def factor_returns(pca, returns, factor_return_indices, factor_return_columns):\n",
    "    \"\"\"\n",
    "    Get the factor returns from the PCA model.\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    pca : PCA\n",
    "        Model fit to returns\n",
    "    returns : DataFrame\n",
    "        Returns for each ticker and date\n",
    "    factor_return_indices : 1 dimensional Ndarray\n",
    "        Factor return indices\n",
    "    factor_return_columns : 1 dimensional Ndarray\n",
    "        Factor return columns\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    factor_returns : DataFrame\n",
    "        Factor returns\n",
    "    \"\"\"\n",
    "    assert len(factor_return_indices.shape) == 1\n",
    "    assert len(factor_return_columns.shape) == 1\n",
    "    \n",
    "#     print(pca)\n",
    "#     print(returns)\n",
    "#     print(factor_return_indices)\n",
    "#     print(factor_return_columns)\n",
    "    r = pd.DataFrame(pca.transform(returns), factor_return_indices, factor_return_columns)\n",
    "    # remember that index is second and columns is third\n",
    "    print(r)\n",
    "    \n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_factor_returns(factor_returns)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's see what these factor returns looks like over time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                   0           1           2           3   \\\n",
      "2011-01-07 00:00:00+00:00 -0.00057388 -0.03078079  0.01142836 -0.02388011   \n",
      "2011-01-10 00:00:00+00:00 -0.00333759 -0.02950323  0.06390791 -0.00317014   \n",
      "2011-01-11 00:00:00+00:00 -0.06936844 -0.08921570 -0.02204548 -0.00942017   \n",
      "2011-01-12 00:00:00+00:00 -0.17364190 -0.04105645 -0.00725760  0.04069748   \n",
      "2011-01-13 00:00:00+00:00  0.03479996  0.00393971  0.02337029 -0.03462896   \n",
      "2011-01-14 00:00:00+00:00 -0.16933859 -0.01346015  0.02118569  0.03959841   \n",
      "2011-01-18 00:00:00+00:00 -0.04446834 -0.05313359 -0.05004345 -0.09578747   \n",
      "2011-01-19 00:00:00+00:00  0.33430911  0.00824995 -0.04380123 -0.03492792   \n",
      "2011-01-20 00:00:00+00:00  0.09297775  0.06346342 -0.11505674  0.00137861   \n",
      "2011-01-21 00:00:00+00:00 -0.01061183 -0.03901373 -0.06073373  0.07435369   \n",
      "2011-01-24 00:00:00+00:00 -0.13246095  0.00291793  0.01989624 -0.03519209   \n",
      "2011-01-25 00:00:00+00:00  0.02331773  0.05532794 -0.05881835 -0.01518193   \n",
      "2011-01-26 00:00:00+00:00 -0.17049205 -0.08649928  0.09379817 -0.01520935   \n",
      "2011-01-27 00:00:00+00:00 -0.12101971  0.09842131  0.04016395  0.04335355   \n",
      "2011-01-28 00:00:00+00:00  0.41292211 -0.15881142 -0.00186256  0.00189895   \n",
      "2011-01-31 00:00:00+00:00 -0.18343375 -0.15884201 -0.02623130 -0.00755574   \n",
      "2011-02-01 00:00:00+00:00 -0.32168288  0.00166021  0.00625936  0.06130111   \n",
      "2011-02-02 00:00:00+00:00  0.05115827 -0.06275013  0.05160446 -0.04689792   \n",
      "2011-02-03 00:00:00+00:00 -0.05149527  0.04314848 -0.00221149 -0.01441396   \n",
      "2011-02-04 00:00:00+00:00 -0.10517252  0.02746247  0.09839770 -0.00798500   \n",
      "2011-02-07 00:00:00+00:00 -0.12424329  0.02239204 -0.04095153  0.07694484   \n",
      "2011-02-08 00:00:00+00:00 -0.09767034  0.04840848  0.01920328 -0.00895489   \n",
      "2011-02-09 00:00:00+00:00  0.07155698  0.04324994 -0.01050043 -0.00227290   \n",
      "2011-02-10 00:00:00+00:00 -0.07255150 -0.03184559  0.02764470 -0.03938878   \n",
      "2011-02-11 00:00:00+00:00 -0.13527909  0.03645286  0.00816824  0.07617237   \n",
      "2011-02-14 00:00:00+00:00 -0.03355403 -0.10475913  0.05271643 -0.05175706   \n",
      "2011-02-15 00:00:00+00:00  0.08056045  0.04912540 -0.02951266  0.01132739   \n",
      "2011-02-16 00:00:00+00:00 -0.14387703 -0.03833729  0.00631120  0.01048295   \n",
      "2011-02-17 00:00:00+00:00 -0.06136366 -0.03736856 -0.01761788 -0.01216471   \n",
      "2011-02-18 00:00:00+00:00 -0.02052621  0.01663131 -0.04965474 -0.00378189   \n",
      "...                               ...         ...         ...         ...   \n",
      "2015-11-20 00:00:00+00:00 -0.05894207  0.12618475 -0.02300183 -0.01016977   \n",
      "2015-11-23 00:00:00+00:00  0.00334466 -0.02819358  0.00504008 -0.02653181   \n",
      "2015-11-24 00:00:00+00:00 -0.05499061 -0.17086110  0.02489791 -0.03589178   \n",
      "2015-11-25 00:00:00+00:00 -0.00626278  0.06554836  0.01641534 -0.01307582   \n",
      "2015-11-27 00:00:00+00:00  0.00231448  0.09632773 -0.02095729  0.02799958   \n",
      "2015-11-30 00:00:00+00:00  0.07745343 -0.11441007  0.01913887  0.05189474   \n",
      "2015-12-01 00:00:00+00:00 -0.19811567  0.04358712 -0.02647206 -0.02664321   \n",
      "2015-12-02 00:00:00+00:00  0.29391677  0.10717879  0.12526361  0.06493981   \n",
      "2015-12-03 00:00:00+00:00  0.35936771 -0.05135025  0.01161228  0.10360835   \n",
      "2015-12-04 00:00:00+00:00 -0.32193919  0.24066457 -0.02359020  0.00974348   \n",
      "2015-12-07 00:00:00+00:00  0.23620999  0.22787246 -0.03042654  0.03348023   \n",
      "2015-12-08 00:00:00+00:00  0.18826246  0.01961790  0.00069559 -0.12841033   \n",
      "2015-12-09 00:00:00+00:00  0.17967737 -0.15264785 -0.02854329 -0.02458887   \n",
      "2015-12-10 00:00:00+00:00 -0.04128634 -0.02414933  0.09132933  0.01555855   \n",
      "2015-12-11 00:00:00+00:00  0.46586244  0.09918686 -0.08096757  0.03622773   \n",
      "2015-12-14 00:00:00+00:00  0.06067683  0.08989676 -0.03698243 -0.02670528   \n",
      "2015-12-15 00:00:00+00:00 -0.26134574 -0.01477556 -0.01760386  0.04739655   \n",
      "2015-12-16 00:00:00+00:00 -0.27361200  0.14093620 -0.06941184 -0.03773649   \n",
      "2015-12-17 00:00:00+00:00  0.38771395  0.08290549 -0.04153635  0.01449475   \n",
      "2015-12-18 00:00:00+00:00  0.33549268 -0.05880609  0.04069433 -0.02155000   \n",
      "2015-12-21 00:00:00+00:00 -0.15933690  0.06243080  0.00736973 -0.01063721   \n",
      "2015-12-22 00:00:00+00:00 -0.21680175 -0.03932912 -0.01949064  0.01284455   \n",
      "2015-12-23 00:00:00+00:00 -0.36492174 -0.26973700 -0.06124253 -0.07165756   \n",
      "2015-12-24 00:00:00+00:00  0.03169273  0.02235415  0.01428881  0.01472492   \n",
      "2015-12-28 00:00:00+00:00  0.08972445  0.13688905 -0.03035387  0.01661864   \n",
      "2015-12-29 00:00:00+00:00 -0.20274047 -0.01410718 -0.00955835 -0.04562100   \n",
      "2015-12-30 00:00:00+00:00  0.19332856  0.04220658 -0.01390970  0.02760554   \n",
      "2015-12-31 00:00:00+00:00  0.15791096 -0.12578986  0.01374782  0.00063781   \n",
      "2016-01-04 00:00:00+00:00  0.30497251 -0.18148930 -0.02522158  0.00292828   \n",
      "2016-01-05 00:00:00+00:00 -0.03196580  0.03572294 -0.11537049 -0.04316320   \n",
      "\n",
      "                                   4           5           6           7   \\\n",
      "2011-01-07 00:00:00+00:00  0.07439954 -0.06454863  0.00937992 -0.03286012   \n",
      "2011-01-10 00:00:00+00:00 -0.04002677 -0.06226218 -0.00242076  0.00257046   \n",
      "2011-01-11 00:00:00+00:00  0.00505499  0.07003719  0.00944192  0.00902712   \n",
      "2011-01-12 00:00:00+00:00 -0.00403607 -0.00726818  0.04698253  0.02430387   \n",
      "2011-01-13 00:00:00+00:00  0.01852459  0.01028050  0.02552545 -0.01272672   \n",
      "2011-01-14 00:00:00+00:00 -0.02185631  0.01077722  0.02612678 -0.03630068   \n",
      "2011-01-18 00:00:00+00:00 -0.08458384  0.02924618  0.02887954 -0.00358756   \n",
      "2011-01-19 00:00:00+00:00 -0.03276634 -0.00129005 -0.03535646  0.08685631   \n",
      "2011-01-20 00:00:00+00:00  0.04604967  0.07286737 -0.04572575  0.04578738   \n",
      "2011-01-21 00:00:00+00:00 -0.02667405  0.06647754 -0.01627012  0.01205952   \n",
      "2011-01-24 00:00:00+00:00  0.00157358 -0.09318874  0.05845832  0.04648553   \n",
      "2011-01-25 00:00:00+00:00 -0.02420583  0.01337601  0.00373240 -0.00267916   \n",
      "2011-01-26 00:00:00+00:00  0.10107434 -0.07216953  0.06066744 -0.02609046   \n",
      "2011-01-27 00:00:00+00:00 -0.01221909 -0.06414929 -0.01346541 -0.01681705   \n",
      "2011-01-28 00:00:00+00:00 -0.00139191  0.01544232 -0.03316460 -0.00563326   \n",
      "2011-01-31 00:00:00+00:00  0.00310367  0.00602407  0.02651434 -0.04285173   \n",
      "2011-02-01 00:00:00+00:00 -0.06034185  0.01835001  0.03204042  0.02813883   \n",
      "2011-02-02 00:00:00+00:00 -0.05412206  0.02083428  0.06660038 -0.03237573   \n",
      "2011-02-03 00:00:00+00:00 -0.01259187 -0.05919418 -0.05322258 -0.00445519   \n",
      "2011-02-04 00:00:00+00:00 -0.10624480  0.00450298 -0.05114157  0.03903872   \n",
      "2011-02-07 00:00:00+00:00  0.04371097 -0.05162336 -0.01302301  0.00101535   \n",
      "2011-02-08 00:00:00+00:00  0.02121429 -0.00722596 -0.03937036 -0.03447092   \n",
      "2011-02-09 00:00:00+00:00 -0.02711135 -0.03642243 -0.02386792 -0.01075128   \n",
      "2011-02-10 00:00:00+00:00 -0.00052227 -0.02211835 -0.00000855 -0.04115668   \n",
      "2011-02-11 00:00:00+00:00  0.00796998  0.00148704  0.00901280 -0.01631916   \n",
      "2011-02-14 00:00:00+00:00  0.01040588  0.01644565  0.01993795  0.00357379   \n",
      "2011-02-15 00:00:00+00:00  0.00036162  0.02413974  0.01442172  0.02489698   \n",
      "2011-02-16 00:00:00+00:00 -0.00116182  0.00682481  0.00980608 -0.00522752   \n",
      "2011-02-17 00:00:00+00:00 -0.00459078 -0.01060009  0.03090601  0.02744242   \n",
      "2011-02-18 00:00:00+00:00 -0.06183439  0.02857696 -0.04479581  0.01405424   \n",
      "...                               ...         ...         ...         ...   \n",
      "2015-11-20 00:00:00+00:00 -0.06894185 -0.03187516 -0.04269586 -0.02746741   \n",
      "2015-11-23 00:00:00+00:00  0.01122017 -0.01069278 -0.05988796 -0.02781739   \n",
      "2015-11-24 00:00:00+00:00  0.00428925 -0.00981392  0.00804964 -0.01002415   \n",
      "2015-11-25 00:00:00+00:00 -0.03268894  0.00832729 -0.03532366 -0.03510477   \n",
      "2015-11-27 00:00:00+00:00 -0.02054022  0.00642067  0.04269999 -0.00166851   \n",
      "2015-11-30 00:00:00+00:00 -0.01539255 -0.03909778  0.07320007  0.02885734   \n",
      "2015-12-01 00:00:00+00:00  0.03805117  0.01208507  0.03162639 -0.01840849   \n",
      "2015-12-02 00:00:00+00:00 -0.01559711  0.00825902 -0.02791509 -0.05109492   \n",
      "2015-12-03 00:00:00+00:00 -0.02704531 -0.07299385  0.05150003  0.05629874   \n",
      "2015-12-04 00:00:00+00:00 -0.07862526  0.04923608 -0.00092279  0.03163282   \n",
      "2015-12-07 00:00:00+00:00 -0.06054739 -0.05930467  0.05228468 -0.01504451   \n",
      "2015-12-08 00:00:00+00:00 -0.04681953  0.02679805  0.01292971 -0.06274044   \n",
      "2015-12-09 00:00:00+00:00  0.06266454 -0.04680654  0.01176495 -0.01700484   \n",
      "2015-12-10 00:00:00+00:00  0.06399947  0.06084277  0.00185970  0.00947815   \n",
      "2015-12-11 00:00:00+00:00 -0.09921540 -0.05312405  0.06237771 -0.05200239   \n",
      "2015-12-14 00:00:00+00:00 -0.05154751  0.03026617 -0.04791530  0.03069328   \n",
      "2015-12-15 00:00:00+00:00  0.01836192  0.09090554  0.04769951 -0.00126587   \n",
      "2015-12-16 00:00:00+00:00 -0.02842751 -0.04900915  0.00593410  0.01605259   \n",
      "2015-12-17 00:00:00+00:00 -0.03793338 -0.00395253  0.06172560 -0.05587758   \n",
      "2015-12-18 00:00:00+00:00  0.02725195 -0.04786672  0.05192137 -0.06651516   \n",
      "2015-12-21 00:00:00+00:00  0.02406003  0.01151817  0.03734119  0.02496330   \n",
      "2015-12-22 00:00:00+00:00 -0.02591003 -0.01547505 -0.00406436  0.05757048   \n",
      "2015-12-23 00:00:00+00:00  0.11979689  0.00661312 -0.01775553  0.03376824   \n",
      "2015-12-24 00:00:00+00:00  0.02906616  0.00473872  0.05015708  0.00526650   \n",
      "2015-12-28 00:00:00+00:00 -0.08499245 -0.02274963  0.00853920 -0.04498807   \n",
      "2015-12-29 00:00:00+00:00  0.00606051  0.02495731 -0.00015559  0.00325268   \n",
      "2015-12-30 00:00:00+00:00 -0.05938389 -0.00095211  0.01665910 -0.02321265   \n",
      "2015-12-31 00:00:00+00:00  0.08379344  0.00388299 -0.02663495 -0.04506407   \n",
      "2016-01-04 00:00:00+00:00  0.02225653 -0.07210934  0.01180340 -0.00738863   \n",
      "2016-01-05 00:00:00+00:00 -0.01410325  0.00217738 -0.00947898 -0.05322753   \n",
      "\n",
      "                                   8           9           10          11  \\\n",
      "2011-01-07 00:00:00+00:00 -0.04700972 -0.01586584  0.00645675 -0.08802464   \n",
      "2011-01-10 00:00:00+00:00  0.03991020 -0.05484797  0.03780088  0.04235487   \n",
      "2011-01-11 00:00:00+00:00 -0.00270264  0.05624727 -0.04555533 -0.01309520   \n",
      "2011-01-12 00:00:00+00:00  0.03555807  0.00591501  0.02009298 -0.00057365   \n",
      "2011-01-13 00:00:00+00:00  0.02879701 -0.01125937  0.00446395  0.00955009   \n",
      "2011-01-14 00:00:00+00:00 -0.00173523  0.02007787  0.02481226 -0.00964081   \n",
      "2011-01-18 00:00:00+00:00  0.03060190  0.01946910 -0.04292205  0.00495945   \n",
      "2011-01-19 00:00:00+00:00 -0.01958467 -0.00993169  0.01421024  0.01502329   \n",
      "2011-01-20 00:00:00+00:00 -0.04700393  0.02590084  0.02404243 -0.00268632   \n",
      "2011-01-21 00:00:00+00:00  0.00877895  0.00798514  0.01729093  0.01798660   \n",
      "2011-01-24 00:00:00+00:00 -0.01041630  0.02419901  0.01283877  0.01829192   \n",
      "2011-01-25 00:00:00+00:00  0.03348647  0.01478612 -0.04138257  0.04946150   \n",
      "2011-01-26 00:00:00+00:00 -0.03742445 -0.00597721 -0.03497341  0.03411229   \n",
      "2011-01-27 00:00:00+00:00  0.15606627 -0.06891200  0.01815558  0.03107016   \n",
      "2011-01-28 00:00:00+00:00  0.06665136  0.00894694 -0.00877561  0.01309168   \n",
      "2011-01-31 00:00:00+00:00 -0.00056071 -0.03810485  0.02391856  0.02067246   \n",
      "2011-02-01 00:00:00+00:00 -0.01405065 -0.00535735  0.00689296 -0.02852831   \n",
      "2011-02-02 00:00:00+00:00  0.01086229  0.00224739 -0.01214470 -0.02523282   \n",
      "2011-02-03 00:00:00+00:00 -0.03736027 -0.06400371  0.05293916  0.06982102   \n",
      "2011-02-04 00:00:00+00:00  0.02085407 -0.00474464  0.02188135  0.07481904   \n",
      "2011-02-07 00:00:00+00:00 -0.01607253  0.00430620  0.00483641  0.00612239   \n",
      "2011-02-08 00:00:00+00:00 -0.05169188 -0.00081042 -0.00174533 -0.04593530   \n",
      "2011-02-09 00:00:00+00:00  0.00146103 -0.01734113  0.01148604 -0.00624825   \n",
      "2011-02-10 00:00:00+00:00  0.01240053  0.01787422 -0.00373602  0.07264877   \n",
      "2011-02-11 00:00:00+00:00  0.03509490 -0.03171851  0.01002307  0.03703328   \n",
      "2011-02-14 00:00:00+00:00  0.10751872  0.01291370 -0.03436310  0.03695753   \n",
      "2011-02-15 00:00:00+00:00 -0.03390535 -0.04144425  0.02779005 -0.01894780   \n",
      "2011-02-16 00:00:00+00:00 -0.00510224  0.01663500 -0.02375763  0.03557604   \n",
      "2011-02-17 00:00:00+00:00  0.00760335  0.03104746 -0.02422955  0.00176229   \n",
      "2011-02-18 00:00:00+00:00 -0.02376477 -0.00811658  0.00324695  0.02393509   \n",
      "...                               ...         ...         ...         ...   \n",
      "2015-11-20 00:00:00+00:00  0.00789695 -0.03061098 -0.03082293  0.05695573   \n",
      "2015-11-23 00:00:00+00:00 -0.01238361 -0.01094726  0.01016737  0.00776306   \n",
      "2015-11-24 00:00:00+00:00 -0.04881142 -0.01326748  0.02093957 -0.00103123   \n",
      "2015-11-25 00:00:00+00:00  0.00788795  0.03309040 -0.00841446  0.02016142   \n",
      "2015-11-27 00:00:00+00:00  0.03797772  0.01798602 -0.03359110  0.00155839   \n",
      "2015-11-30 00:00:00+00:00  0.00266783 -0.00475650  0.02659823 -0.03702798   \n",
      "2015-12-01 00:00:00+00:00 -0.00463814 -0.07339856 -0.04135505 -0.02715371   \n",
      "2015-12-02 00:00:00+00:00  0.02381376 -0.00497597  0.00173906  0.00236851   \n",
      "2015-12-03 00:00:00+00:00  0.02102692  0.04784430 -0.00076016  0.01477221   \n",
      "2015-12-04 00:00:00+00:00  0.04815205  0.00364703 -0.03023925 -0.02864506   \n",
      "2015-12-07 00:00:00+00:00 -0.03531435  0.00150925 -0.00697253 -0.01042672   \n",
      "2015-12-08 00:00:00+00:00  0.03067484 -0.02128284 -0.01483593  0.04152113   \n",
      "2015-12-09 00:00:00+00:00 -0.04413318 -0.04399590  0.02107141 -0.03454458   \n",
      "2015-12-10 00:00:00+00:00 -0.02331553  0.00308212 -0.03432551  0.02042491   \n",
      "2015-12-11 00:00:00+00:00  0.03818402  0.06256943 -0.03689154  0.00692026   \n",
      "2015-12-14 00:00:00+00:00  0.04114108 -0.00498415 -0.02900325  0.00549975   \n",
      "2015-12-15 00:00:00+00:00  0.01725692 -0.00516708 -0.00149479 -0.05811771   \n",
      "2015-12-16 00:00:00+00:00 -0.00173779 -0.00164190  0.01710365 -0.10834488   \n",
      "2015-12-17 00:00:00+00:00  0.07746065 -0.01670713 -0.00559431  0.01188974   \n",
      "2015-12-18 00:00:00+00:00 -0.02506906 -0.01603836  0.01207237  0.04563811   \n",
      "2015-12-21 00:00:00+00:00 -0.05337242 -0.01063940 -0.00136667 -0.01013784   \n",
      "2015-12-22 00:00:00+00:00 -0.02219308  0.01677145  0.02839197 -0.01604670   \n",
      "2015-12-23 00:00:00+00:00 -0.03205593 -0.04516859 -0.00005358 -0.01082803   \n",
      "2015-12-24 00:00:00+00:00  0.00754204 -0.00040590  0.00116389 -0.01711475   \n",
      "2015-12-28 00:00:00+00:00  0.01717670  0.00666695  0.01293554 -0.00979906   \n",
      "2015-12-29 00:00:00+00:00  0.00211118 -0.03326386  0.02287429  0.00428642   \n",
      "2015-12-30 00:00:00+00:00  0.01362399  0.02821184 -0.02483655 -0.00676528   \n",
      "2015-12-31 00:00:00+00:00 -0.03189166 -0.02172653  0.03071825  0.01745374   \n",
      "2016-01-04 00:00:00+00:00 -0.03588841 -0.04063832  0.06938548  0.06896852   \n",
      "2016-01-05 00:00:00+00:00 -0.01458790 -0.04921822  0.01707949 -0.02275005   \n",
      "\n",
      "                                   12          13          14          15  \\\n",
      "2011-01-07 00:00:00+00:00 -0.00000916  0.00725687 -0.02188955  0.00224615   \n",
      "2011-01-10 00:00:00+00:00 -0.00928022  0.00328800 -0.03138118 -0.02861387   \n",
      "2011-01-11 00:00:00+00:00 -0.00339023  0.00681762 -0.00593988 -0.03015613   \n",
      "2011-01-12 00:00:00+00:00 -0.00483697  0.00073673 -0.00610239  0.01426738   \n",
      "2011-01-13 00:00:00+00:00  0.00965600  0.00814054 -0.00549300 -0.01062754   \n",
      "2011-01-14 00:00:00+00:00 -0.03582580 -0.01485084  0.00804831  0.00133641   \n",
      "2011-01-18 00:00:00+00:00  0.03478880  0.07194851 -0.01461197  0.02806526   \n",
      "2011-01-19 00:00:00+00:00 -0.01658884 -0.01877410 -0.01515888 -0.00828022   \n",
      "2011-01-20 00:00:00+00:00 -0.05785573 -0.03053164 -0.02191401  0.00463895   \n",
      "2011-01-21 00:00:00+00:00  0.00179281  0.01412394 -0.00530256 -0.00854657   \n",
      "2011-01-24 00:00:00+00:00 -0.01584522  0.00963561  0.00035045  0.00815755   \n",
      "2011-01-25 00:00:00+00:00 -0.02469748  0.01970010 -0.03389062 -0.00206432   \n",
      "2011-01-26 00:00:00+00:00  0.07125204  0.02405262  0.02960105  0.03222813   \n",
      "2011-01-27 00:00:00+00:00 -0.02429627 -0.02315160  0.00386748  0.00711561   \n",
      "2011-01-28 00:00:00+00:00 -0.00774564 -0.00445645  0.00470809 -0.01858190   \n",
      "2011-01-31 00:00:00+00:00  0.04057715 -0.03586443 -0.03074958  0.00567389   \n",
      "2011-02-01 00:00:00+00:00 -0.01433001  0.02287616  0.02276253 -0.00023154   \n",
      "2011-02-02 00:00:00+00:00  0.04368291 -0.01295398  0.02787044  0.01682099   \n",
      "2011-02-03 00:00:00+00:00 -0.01149117  0.04002153 -0.00543221 -0.00969752   \n",
      "2011-02-04 00:00:00+00:00 -0.02102626  0.04516858  0.01231077  0.00491713   \n",
      "2011-02-07 00:00:00+00:00  0.03458844 -0.00896034  0.02330087 -0.00346908   \n",
      "2011-02-08 00:00:00+00:00  0.01144253  0.01573863  0.00366667 -0.01277432   \n",
      "2011-02-09 00:00:00+00:00 -0.02079658  0.01630547 -0.02306851  0.00850290   \n",
      "2011-02-10 00:00:00+00:00  0.10655721 -0.00499458  0.01316837 -0.00458549   \n",
      "2011-02-11 00:00:00+00:00 -0.02210081  0.03803819  0.01179137  0.05309674   \n",
      "2011-02-14 00:00:00+00:00  0.01178104  0.00799423  0.03351363 -0.01414043   \n",
      "2011-02-15 00:00:00+00:00 -0.00592817  0.00091895 -0.01301599 -0.01109911   \n",
      "2011-02-16 00:00:00+00:00  0.00378135  0.01892438 -0.00130611  0.00002360   \n",
      "2011-02-17 00:00:00+00:00 -0.03461954  0.03690268  0.04057480 -0.01286321   \n",
      "2011-02-18 00:00:00+00:00 -0.00809110 -0.05030023 -0.05636543  0.00642420   \n",
      "...                               ...         ...         ...         ...   \n",
      "2015-11-20 00:00:00+00:00 -0.04873367  0.02682009 -0.03218251 -0.03367307   \n",
      "2015-11-23 00:00:00+00:00 -0.01585049  0.03776139  0.00886676  0.01205663   \n",
      "2015-11-24 00:00:00+00:00 -0.07571063  0.02152339  0.00726562 -0.01183159   \n",
      "2015-11-25 00:00:00+00:00  0.00658544 -0.00841994 -0.00792546  0.00140383   \n",
      "2015-11-27 00:00:00+00:00  0.00495188  0.00147555 -0.01369990 -0.00829327   \n",
      "2015-11-30 00:00:00+00:00  0.00337799 -0.00142981  0.00474261  0.00350410   \n",
      "2015-12-01 00:00:00+00:00 -0.05402317 -0.01078007  0.00267903 -0.03502741   \n",
      "2015-12-02 00:00:00+00:00  0.04150474  0.01963721 -0.01652396  0.01299974   \n",
      "2015-12-03 00:00:00+00:00  0.01427720 -0.00839048 -0.00415497 -0.02822059   \n",
      "2015-12-04 00:00:00+00:00 -0.01344089 -0.02899536  0.05941345 -0.03929765   \n",
      "2015-12-07 00:00:00+00:00  0.01556585  0.00722329  0.02012841  0.03866070   \n",
      "2015-12-08 00:00:00+00:00 -0.03261122 -0.07580758  0.05933397  0.00784841   \n",
      "2015-12-09 00:00:00+00:00  0.03087910  0.05298823 -0.07157819  0.01375390   \n",
      "2015-12-10 00:00:00+00:00 -0.04383729 -0.01934865 -0.00931856  0.00341713   \n",
      "2015-12-11 00:00:00+00:00  0.01760020  0.00672039 -0.07545331  0.04265135   \n",
      "2015-12-14 00:00:00+00:00  0.07291708 -0.05977412 -0.03618199  0.03139889   \n",
      "2015-12-15 00:00:00+00:00  0.01584976 -0.04899543  0.00157570 -0.00034939   \n",
      "2015-12-16 00:00:00+00:00 -0.02293857  0.02879845  0.00929440 -0.00736381   \n",
      "2015-12-17 00:00:00+00:00  0.00683306  0.02374825  0.04033252 -0.01207340   \n",
      "2015-12-18 00:00:00+00:00  0.00984816  0.04921856  0.00388364  0.02958725   \n",
      "2015-12-21 00:00:00+00:00 -0.06457319  0.03670097  0.00952462 -0.05668102   \n",
      "2015-12-22 00:00:00+00:00 -0.01182213  0.03379101 -0.05681969  0.00968952   \n",
      "2015-12-23 00:00:00+00:00 -0.03720411 -0.00662228 -0.01765081 -0.00525673   \n",
      "2015-12-24 00:00:00+00:00 -0.00311357 -0.01389482  0.00371904 -0.00226410   \n",
      "2015-12-28 00:00:00+00:00  0.01573748 -0.02232008 -0.01696652  0.00876680   \n",
      "2015-12-29 00:00:00+00:00 -0.01563807 -0.01822145  0.00275078 -0.00635348   \n",
      "2015-12-30 00:00:00+00:00  0.01680741  0.01815456  0.00632041  0.00060359   \n",
      "2015-12-31 00:00:00+00:00  0.01572211 -0.00222600  0.00947101  0.00818351   \n",
      "2016-01-04 00:00:00+00:00 -0.02837591  0.04223005  0.00965153 -0.00231610   \n",
      "2016-01-05 00:00:00+00:00 -0.01716604 -0.00714440 -0.01455290  0.02432783   \n",
      "\n",
      "                                   16          17          18          19  \n",
      "2011-01-07 00:00:00+00:00  0.01117210 -0.01246048  0.01140898 -0.03689847  \n",
      "2011-01-10 00:00:00+00:00 -0.00691398  0.02981512 -0.00514588  0.00145269  \n",
      "2011-01-11 00:00:00+00:00  0.06850389  0.01848833 -0.03688316 -0.01028558  \n",
      "2011-01-12 00:00:00+00:00 -0.00381668 -0.02129295  0.01805146  0.00688559  \n",
      "2011-01-13 00:00:00+00:00  0.02751285  0.00574566  0.00055811 -0.00568092  \n",
      "2011-01-14 00:00:00+00:00  0.03062860  0.00143513 -0.01566992  0.00246646  \n",
      "2011-01-18 00:00:00+00:00 -0.02939274  0.01789572 -0.02487888 -0.00433678  \n",
      "2011-01-19 00:00:00+00:00  0.01911304  0.01669565  0.01875203 -0.02582904  \n",
      "2011-01-20 00:00:00+00:00 -0.08819810  0.01776310  0.01676319 -0.02727379  \n",
      "2011-01-21 00:00:00+00:00  0.00540036  0.00177211 -0.04089454 -0.00057365  \n",
      "2011-01-24 00:00:00+00:00 -0.00856207 -0.00937378 -0.00776904 -0.01118185  \n",
      "2011-01-25 00:00:00+00:00  0.00733742  0.03549875  0.02170859  0.04651370  \n",
      "2011-01-26 00:00:00+00:00  0.01658094  0.00746559  0.01971438  0.00370097  \n",
      "2011-01-27 00:00:00+00:00  0.02531699 -0.02367689 -0.04654108  0.02222234  \n",
      "2011-01-28 00:00:00+00:00  0.00704242 -0.00394245  0.00110492  0.02320696  \n",
      "2011-01-31 00:00:00+00:00 -0.01170534 -0.00632210  0.03124275 -0.00132323  \n",
      "2011-02-01 00:00:00+00:00 -0.04329552  0.02184844 -0.02541344 -0.03667000  \n",
      "2011-02-02 00:00:00+00:00  0.00110259 -0.04544325 -0.00422603 -0.00266477  \n",
      "2011-02-03 00:00:00+00:00 -0.03216269  0.02239898 -0.00274379 -0.00558432  \n",
      "2011-02-04 00:00:00+00:00  0.01802910  0.00445723  0.02234483 -0.02021332  \n",
      "2011-02-07 00:00:00+00:00  0.00316872  0.00529641 -0.01279048  0.01950830  \n",
      "2011-02-08 00:00:00+00:00 -0.00277506  0.00529121 -0.01993670 -0.01646167  \n",
      "2011-02-09 00:00:00+00:00 -0.01897410  0.02156336 -0.02109247  0.02353444  \n",
      "2011-02-10 00:00:00+00:00  0.01732552 -0.01723755 -0.03216496 -0.04576229  \n",
      "2011-02-11 00:00:00+00:00 -0.03868300  0.11963746 -0.02604933  0.01391210  \n",
      "2011-02-14 00:00:00+00:00 -0.04533680 -0.02055352  0.01812489 -0.00770627  \n",
      "2011-02-15 00:00:00+00:00  0.00231088 -0.03054589  0.00335798 -0.01292523  \n",
      "2011-02-16 00:00:00+00:00 -0.04656141  0.00406941  0.02882755 -0.04756416  \n",
      "2011-02-17 00:00:00+00:00 -0.05307548 -0.00941121  0.04374961 -0.06369729  \n",
      "2011-02-18 00:00:00+00:00  0.03005706  0.01593661 -0.01869956 -0.02575113  \n",
      "...                               ...         ...         ...         ...  \n",
      "2015-11-20 00:00:00+00:00 -0.01665623  0.00523765  0.02889574 -0.00902575  \n",
      "2015-11-23 00:00:00+00:00  0.00797745 -0.00184344  0.03270462 -0.00094709  \n",
      "2015-11-24 00:00:00+00:00 -0.03807951  0.03991818  0.00744694  0.02050284  \n",
      "2015-11-25 00:00:00+00:00 -0.02525402  0.02183186  0.01670117 -0.00092310  \n",
      "2015-11-27 00:00:00+00:00  0.02753609  0.01176231 -0.00142056  0.01758087  \n",
      "2015-11-30 00:00:00+00:00 -0.01073165 -0.00861253 -0.02890878  0.02385278  \n",
      "2015-12-01 00:00:00+00:00  0.03103293  0.01892912 -0.00105364 -0.00289579  \n",
      "2015-12-02 00:00:00+00:00  0.02557885  0.01825849  0.01850742 -0.03810765  \n",
      "2015-12-03 00:00:00+00:00 -0.04643861 -0.03247584 -0.02240272  0.01987778  \n",
      "2015-12-04 00:00:00+00:00 -0.04817732  0.04540138  0.06282019  0.00793005  \n",
      "2015-12-07 00:00:00+00:00 -0.01898419  0.00027581 -0.00438735 -0.07136302  \n",
      "2015-12-08 00:00:00+00:00  0.06236877 -0.01698431  0.04464708 -0.04218683  \n",
      "2015-12-09 00:00:00+00:00 -0.02898687 -0.00684317 -0.04382199  0.05975871  \n",
      "2015-12-10 00:00:00+00:00 -0.03672066 -0.00134909  0.01853539 -0.01228162  \n",
      "2015-12-11 00:00:00+00:00  0.03111147 -0.01019567  0.04946749  0.00596288  \n",
      "2015-12-14 00:00:00+00:00 -0.00103281  0.01267071  0.09608873 -0.04028319  \n",
      "2015-12-15 00:00:00+00:00 -0.00548359 -0.01173349  0.01136518  0.04455375  \n",
      "2015-12-16 00:00:00+00:00 -0.06703662  0.02465793 -0.03102654  0.02280461  \n",
      "2015-12-17 00:00:00+00:00  0.02303640 -0.05726898  0.01619275 -0.07014945  \n",
      "2015-12-18 00:00:00+00:00  0.01542540  0.00748699 -0.02820661  0.01580258  \n",
      "2015-12-21 00:00:00+00:00 -0.01057192  0.03655404 -0.02979694  0.01093419  \n",
      "2015-12-22 00:00:00+00:00 -0.09074472 -0.01008826 -0.00153108 -0.00802758  \n",
      "2015-12-23 00:00:00+00:00 -0.00468483  0.01139809 -0.03523201  0.05481733  \n",
      "2015-12-24 00:00:00+00:00 -0.02517841  0.00738166  0.00210026 -0.01233219  \n",
      "2015-12-28 00:00:00+00:00  0.01547924 -0.01935872  0.00541384 -0.04135841  \n",
      "2015-12-29 00:00:00+00:00  0.01377117  0.02168750 -0.01137344  0.02005314  \n",
      "2015-12-30 00:00:00+00:00  0.00673062 -0.02915630  0.02903833 -0.00240316  \n",
      "2015-12-31 00:00:00+00:00  0.01447706  0.00837250 -0.03475418 -0.02092409  \n",
      "2016-01-04 00:00:00+00:00  0.01949880 -0.01140811 -0.00057088  0.02250751  \n",
      "2016-01-05 00:00:00+00:00 -0.00306476 -0.01748529  0.04767827 -0.00399871  \n",
      "\n",
      "[1256 rows x 20 columns]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc8804047b8>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc880496390>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "risk_model['factor_returns'] = factor_returns(\n",
    "    pca,\n",
    "    five_year_returns,\n",
    "    five_year_returns.index,\n",
    "    np.arange(num_factor_exposures))\n",
    "\n",
    "risk_model['factor_returns'].cumsum().plot(legend=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Factor Covariance Matrix\n",
    "Implement `factor_cov_matrix` to get the factor covariance matrix."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 162.26559808    0.            0.        ]\n",
      " [   0.          159.86284454    0.        ]\n",
      " [   0.            0.          333.09785876]]\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def factor_cov_matrix(factor_returns, ann_factor):\n",
    "    \"\"\"\n",
    "    Get the factor covariance matrix\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    factor_returns : DataFrame\n",
    "        Factor returns\n",
    "    ann_factor : int\n",
    "        Annualization factor\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    factor_cov_matrix : 2 dimensional Ndarray\n",
    "        Factor covariance matrix\n",
    "    \"\"\"\n",
    "#     print(factor_returns)\n",
    "#     print(ann_factor)\n",
    "    r = np.diag(ann_factor * factor_returns.var(0, 1))\n",
    "    #factor_returns.var(axis=0, ddof=1) is the same as np.var(factor_returns, axis=0, ddof=1)\n",
    "    print(r)\n",
    "    \n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_factor_cov_matrix(factor_cov_matrix)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 14.01830425   0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           1.10591127   0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.77099145   0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.61798821   0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.47589087   0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.43653314\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.3873247    0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.34930218   0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.34350283   0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.31674163   0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.28186725   0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.27627061\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.2685606    0.           0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.24980787   0.           0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.23327643   0.           0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.21390375   0.           0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.20832466   0.\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.19456118\n",
      "    0.           0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.1911863    0.        ]\n",
      " [  0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.           0.           0.           0.           0.\n",
      "    0.           0.18713716]]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ 14.01830425,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   1.10591127,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.77099145,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.61798821,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.47589087,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.43653314,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.3873247 ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.34930218,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.34350283,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.31674163,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.28186725,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.27627061,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.2685606 ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.24980787,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.23327643,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.21390375,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.20832466,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.19456118,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.1911863 ,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.        ,\n",
       "          0.        ,   0.        ,   0.        ,   0.18713716]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ann_factor = 252\n",
    "risk_model['factor_cov_matrix'] = factor_cov_matrix(risk_model['factor_returns'], ann_factor)\n",
    "\n",
    "risk_model['factor_cov_matrix']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Idiosyncratic Variance Matrix\n",
    "Implement `idiosyncratic_var_matrix` to get the idiosyncratic variance matrix."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                 Equity(0 [A])  Equity(1 [AAL])  Equity(2 [AAP])\n",
      "Equity(0 [A])       0.00000000       0.00000000       0.00000000\n",
      "Equity(1 [AAL])     0.00000000       0.00000000       0.00000000\n",
      "Equity(2 [AAP])     0.00000000       0.00000000       0.00000000\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def idiosyncratic_var_matrix(returns, factor_returns, factor_betas, ann_factor):\n",
    "    \"\"\"\n",
    "    Get the idiosyncratic variance matrix\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    returns : DataFrame\n",
    "        Returns for each ticker and date\n",
    "    factor_returns : DataFrame\n",
    "        Factor returns\n",
    "    factor_betas : DataFrame\n",
    "        Factor betas\n",
    "    ann_factor : int\n",
    "        Annualization factor\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    idiosyncratic_var_matrix : DataFrame\n",
    "        Idiosyncratic variance matrix\n",
    "    \"\"\"\n",
    "#     print(returns)\n",
    "#     print(factor_returns)\n",
    "#     print(factor_betas)\n",
    "#     print(ann_factor)\n",
    "    x = np.dot(factor_returns, factor_betas.T)\n",
    "#     print(x)\n",
    "    cr = pd.DataFrame(x, returns.index, returns.columns)\n",
    "#     print(cr)\n",
    "    residuals = returns - cr\n",
    "#     print(residuals)\n",
    "    y = np.diag(np.var(residuals)) * ann_factor\n",
    "    # diag is short for diagonal\n",
    "#     print(y)\n",
    "    r = pd.DataFrame(y, returns.columns, returns.columns)\n",
    "    print(r)\n",
    "    \n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_idiosyncratic_var_matrix(idiosyncratic_var_matrix)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                    Equity(0 [A])  Equity(1 [AAL])  Equity(2 [AAP])  \\\n",
      "Equity(0 [A])          0.02272182       0.00000000       0.00000000   \n",
      "Equity(1 [AAL])        0.00000000       0.05191553       0.00000000   \n",
      "Equity(2 [AAP])        0.00000000       0.00000000       0.05431913   \n",
      "Equity(3 [AAPL])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(4 [ABBV])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(5 [ABC])        0.00000000       0.00000000       0.00000000   \n",
      "Equity(6 [ABT])        0.00000000       0.00000000       0.00000000   \n",
      "Equity(7 [ACN])        0.00000000       0.00000000       0.00000000   \n",
      "Equity(8 [ADBE])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(9 [ADI])        0.00000000       0.00000000       0.00000000   \n",
      "Equity(10 [ADM])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(11 [ADP])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(12 [ADS])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(13 [ADSK])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(14 [AEE])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(15 [AEP])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(16 [AES])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(17 [AET])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(18 [AFL])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(19 [AGN])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(20 [AIG])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(21 [AIV])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(22 [AIZ])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(23 [AJG])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(24 [AKAM])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(25 [ALB])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(26 [ALGN])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(27 [ALK])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(28 [ALL])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(29 [ALLE])      0.00000000       0.00000000       0.00000000   \n",
      "...                           ...              ...              ...   \n",
      "Equity(460 [VRSN])     0.00000000       0.00000000       0.00000000   \n",
      "Equity(461 [VRTX])     0.00000000       0.00000000       0.00000000   \n",
      "Equity(462 [VTR])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(463 [VZ])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(464 [WAT])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(465 [WBA])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(466 [WDC])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(467 [WEC])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(468 [WFC])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(469 [WHR])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(471 [WM])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(472 [WMB])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(473 [WMT])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(474 [WRK])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(475 [WU])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(476 [WY])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(477 [WYN])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(478 [WYNN])     0.00000000       0.00000000       0.00000000   \n",
      "Equity(479 [XEC])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(480 [XEL])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(481 [XL])       0.00000000       0.00000000       0.00000000   \n",
      "Equity(482 [XLNX])     0.00000000       0.00000000       0.00000000   \n",
      "Equity(483 [XOM])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(484 [XRAY])     0.00000000       0.00000000       0.00000000   \n",
      "Equity(485 [XRX])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(486 [XYL])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(487 [YUM])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(488 [ZBH])      0.00000000       0.00000000       0.00000000   \n",
      "Equity(489 [ZION])     0.00000000       0.00000000       0.00000000   \n",
      "Equity(490 [ZTS])      0.00000000       0.00000000       0.00000000   \n",
      "\n",
      "                    Equity(3 [AAPL])  Equity(4 [ABBV])  Equity(5 [ABC])  \\\n",
      "Equity(0 [A])             0.00000000        0.00000000       0.00000000   \n",
      "Equity(1 [AAL])           0.00000000        0.00000000       0.00000000   \n",
      "Equity(2 [AAP])           0.00000000        0.00000000       0.00000000   \n",
      "Equity(3 [AAPL])          0.04791701        0.00000000       0.00000000   \n",
      "Equity(4 [ABBV])          0.00000000        0.03038416       0.00000000   \n",
      "Equity(5 [ABC])           0.00000000        0.00000000       0.01853902   \n",
      "Equity(6 [ABT])           0.00000000        0.00000000       0.00000000   \n",
      "Equity(7 [ACN])           0.00000000        0.00000000       0.00000000   \n",
      "Equity(8 [ADBE])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(9 [ADI])           0.00000000        0.00000000       0.00000000   \n",
      "Equity(10 [ADM])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(11 [ADP])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(12 [ADS])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(13 [ADSK])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(14 [AEE])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(15 [AEP])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(16 [AES])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(17 [AET])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(18 [AFL])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(19 [AGN])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(20 [AIG])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(21 [AIV])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(22 [AIZ])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(23 [AJG])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(24 [AKAM])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(25 [ALB])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(26 [ALGN])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(27 [ALK])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(28 [ALL])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(29 [ALLE])         0.00000000        0.00000000       0.00000000   \n",
      "...                              ...               ...              ...   \n",
      "Equity(460 [VRSN])        0.00000000        0.00000000       0.00000000   \n",
      "Equity(461 [VRTX])        0.00000000        0.00000000       0.00000000   \n",
      "Equity(462 [VTR])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(463 [VZ])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(464 [WAT])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(465 [WBA])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(466 [WDC])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(467 [WEC])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(468 [WFC])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(469 [WHR])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(471 [WM])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(472 [WMB])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(473 [WMT])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(474 [WRK])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(475 [WU])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(476 [WY])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(477 [WYN])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(478 [WYNN])        0.00000000        0.00000000       0.00000000   \n",
      "Equity(479 [XEC])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(480 [XEL])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(481 [XL])          0.00000000        0.00000000       0.00000000   \n",
      "Equity(482 [XLNX])        0.00000000        0.00000000       0.00000000   \n",
      "Equity(483 [XOM])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(484 [XRAY])        0.00000000        0.00000000       0.00000000   \n",
      "Equity(485 [XRX])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(486 [XYL])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(487 [YUM])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(488 [ZBH])         0.00000000        0.00000000       0.00000000   \n",
      "Equity(489 [ZION])        0.00000000        0.00000000       0.00000000   \n",
      "Equity(490 [ZTS])         0.00000000        0.00000000       0.00000000   \n",
      "\n",
      "                    Equity(6 [ABT])  Equity(7 [ACN])  Equity(8 [ADBE])  \\\n",
      "Equity(0 [A])            0.00000000       0.00000000        0.00000000   \n",
      "Equity(1 [AAL])          0.00000000       0.00000000        0.00000000   \n",
      "Equity(2 [AAP])          0.00000000       0.00000000        0.00000000   \n",
      "Equity(3 [AAPL])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(4 [ABBV])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(5 [ABC])          0.00000000       0.00000000        0.00000000   \n",
      "Equity(6 [ABT])          0.01480918       0.00000000        0.00000000   \n",
      "Equity(7 [ACN])          0.00000000       0.02179118        0.00000000   \n",
      "Equity(8 [ADBE])         0.00000000       0.00000000        0.03445348   \n",
      "Equity(9 [ADI])          0.00000000       0.00000000        0.00000000   \n",
      "Equity(10 [ADM])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(11 [ADP])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(12 [ADS])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(13 [ADSK])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(14 [AEE])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(15 [AEP])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(16 [AES])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(17 [AET])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(18 [AFL])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(19 [AGN])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(20 [AIG])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(21 [AIV])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(22 [AIZ])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(23 [AJG])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(24 [AKAM])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(25 [ALB])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(26 [ALGN])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(27 [ALK])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(28 [ALL])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(29 [ALLE])        0.00000000       0.00000000        0.00000000   \n",
      "...                             ...              ...               ...   \n",
      "Equity(460 [VRSN])       0.00000000       0.00000000        0.00000000   \n",
      "Equity(461 [VRTX])       0.00000000       0.00000000        0.00000000   \n",
      "Equity(462 [VTR])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(463 [VZ])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(464 [WAT])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(465 [WBA])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(466 [WDC])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(467 [WEC])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(468 [WFC])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(469 [WHR])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(471 [WM])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(472 [WMB])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(473 [WMT])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(474 [WRK])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(475 [WU])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(476 [WY])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(477 [WYN])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(478 [WYNN])       0.00000000       0.00000000        0.00000000   \n",
      "Equity(479 [XEC])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(480 [XEL])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(481 [XL])         0.00000000       0.00000000        0.00000000   \n",
      "Equity(482 [XLNX])       0.00000000       0.00000000        0.00000000   \n",
      "Equity(483 [XOM])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(484 [XRAY])       0.00000000       0.00000000        0.00000000   \n",
      "Equity(485 [XRX])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(486 [XYL])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(487 [YUM])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(488 [ZBH])        0.00000000       0.00000000        0.00000000   \n",
      "Equity(489 [ZION])       0.00000000       0.00000000        0.00000000   \n",
      "Equity(490 [ZTS])        0.00000000       0.00000000        0.00000000   \n",
      "\n",
      "                    Equity(9 [ADI])        ...          Equity(481 [XL])  \\\n",
      "Equity(0 [A])            0.00000000        ...                0.00000000   \n",
      "Equity(1 [AAL])          0.00000000        ...                0.00000000   \n",
      "Equity(2 [AAP])          0.00000000        ...                0.00000000   \n",
      "Equity(3 [AAPL])         0.00000000        ...                0.00000000   \n",
      "Equity(4 [ABBV])         0.00000000        ...                0.00000000   \n",
      "Equity(5 [ABC])          0.00000000        ...                0.00000000   \n",
      "Equity(6 [ABT])          0.00000000        ...                0.00000000   \n",
      "Equity(7 [ACN])          0.00000000        ...                0.00000000   \n",
      "Equity(8 [ADBE])         0.00000000        ...                0.00000000   \n",
      "Equity(9 [ADI])          0.01896042        ...                0.00000000   \n",
      "Equity(10 [ADM])         0.00000000        ...                0.00000000   \n",
      "Equity(11 [ADP])         0.00000000        ...                0.00000000   \n",
      "Equity(12 [ADS])         0.00000000        ...                0.00000000   \n",
      "Equity(13 [ADSK])        0.00000000        ...                0.00000000   \n",
      "Equity(14 [AEE])         0.00000000        ...                0.00000000   \n",
      "Equity(15 [AEP])         0.00000000        ...                0.00000000   \n",
      "Equity(16 [AES])         0.00000000        ...                0.00000000   \n",
      "Equity(17 [AET])         0.00000000        ...                0.00000000   \n",
      "Equity(18 [AFL])         0.00000000        ...                0.00000000   \n",
      "Equity(19 [AGN])         0.00000000        ...                0.00000000   \n",
      "Equity(20 [AIG])         0.00000000        ...                0.00000000   \n",
      "Equity(21 [AIV])         0.00000000        ...                0.00000000   \n",
      "Equity(22 [AIZ])         0.00000000        ...                0.00000000   \n",
      "Equity(23 [AJG])         0.00000000        ...                0.00000000   \n",
      "Equity(24 [AKAM])        0.00000000        ...                0.00000000   \n",
      "Equity(25 [ALB])         0.00000000        ...                0.00000000   \n",
      "Equity(26 [ALGN])        0.00000000        ...                0.00000000   \n",
      "Equity(27 [ALK])         0.00000000        ...                0.00000000   \n",
      "Equity(28 [ALL])         0.00000000        ...                0.00000000   \n",
      "Equity(29 [ALLE])        0.00000000        ...                0.00000000   \n",
      "...                             ...        ...                       ...   \n",
      "Equity(460 [VRSN])       0.00000000        ...                0.00000000   \n",
      "Equity(461 [VRTX])       0.00000000        ...                0.00000000   \n",
      "Equity(462 [VTR])        0.00000000        ...                0.00000000   \n",
      "Equity(463 [VZ])         0.00000000        ...                0.00000000   \n",
      "Equity(464 [WAT])        0.00000000        ...                0.00000000   \n",
      "Equity(465 [WBA])        0.00000000        ...                0.00000000   \n",
      "Equity(466 [WDC])        0.00000000        ...                0.00000000   \n",
      "Equity(467 [WEC])        0.00000000        ...                0.00000000   \n",
      "Equity(468 [WFC])        0.00000000        ...                0.00000000   \n",
      "Equity(469 [WHR])        0.00000000        ...                0.00000000   \n",
      "Equity(471 [WM])         0.00000000        ...                0.00000000   \n",
      "Equity(472 [WMB])        0.00000000        ...                0.00000000   \n",
      "Equity(473 [WMT])        0.00000000        ...                0.00000000   \n",
      "Equity(474 [WRK])        0.00000000        ...                0.00000000   \n",
      "Equity(475 [WU])         0.00000000        ...                0.00000000   \n",
      "Equity(476 [WY])         0.00000000        ...                0.00000000   \n",
      "Equity(477 [WYN])        0.00000000        ...                0.00000000   \n",
      "Equity(478 [WYNN])       0.00000000        ...                0.00000000   \n",
      "Equity(479 [XEC])        0.00000000        ...                0.00000000   \n",
      "Equity(480 [XEL])        0.00000000        ...                0.00000000   \n",
      "Equity(481 [XL])         0.00000000        ...                0.02052419   \n",
      "Equity(482 [XLNX])       0.00000000        ...                0.00000000   \n",
      "Equity(483 [XOM])        0.00000000        ...                0.00000000   \n",
      "Equity(484 [XRAY])       0.00000000        ...                0.00000000   \n",
      "Equity(485 [XRX])        0.00000000        ...                0.00000000   \n",
      "Equity(486 [XYL])        0.00000000        ...                0.00000000   \n",
      "Equity(487 [YUM])        0.00000000        ...                0.00000000   \n",
      "Equity(488 [ZBH])        0.00000000        ...                0.00000000   \n",
      "Equity(489 [ZION])       0.00000000        ...                0.00000000   \n",
      "Equity(490 [ZTS])        0.00000000        ...                0.00000000   \n",
      "\n",
      "                    Equity(482 [XLNX])  Equity(483 [XOM])  Equity(484 [XRAY])  \\\n",
      "Equity(0 [A])               0.00000000         0.00000000          0.00000000   \n",
      "Equity(1 [AAL])             0.00000000         0.00000000          0.00000000   \n",
      "Equity(2 [AAP])             0.00000000         0.00000000          0.00000000   \n",
      "Equity(3 [AAPL])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(4 [ABBV])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(5 [ABC])             0.00000000         0.00000000          0.00000000   \n",
      "Equity(6 [ABT])             0.00000000         0.00000000          0.00000000   \n",
      "Equity(7 [ACN])             0.00000000         0.00000000          0.00000000   \n",
      "Equity(8 [ADBE])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(9 [ADI])             0.00000000         0.00000000          0.00000000   \n",
      "Equity(10 [ADM])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(11 [ADP])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(12 [ADS])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(13 [ADSK])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(14 [AEE])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(15 [AEP])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(16 [AES])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(17 [AET])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(18 [AFL])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(19 [AGN])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(20 [AIG])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(21 [AIV])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(22 [AIZ])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(23 [AJG])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(24 [AKAM])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(25 [ALB])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(26 [ALGN])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(27 [ALK])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(28 [ALL])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(29 [ALLE])           0.00000000         0.00000000          0.00000000   \n",
      "...                                ...                ...                 ...   \n",
      "Equity(460 [VRSN])          0.00000000         0.00000000          0.00000000   \n",
      "Equity(461 [VRTX])          0.00000000         0.00000000          0.00000000   \n",
      "Equity(462 [VTR])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(463 [VZ])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(464 [WAT])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(465 [WBA])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(466 [WDC])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(467 [WEC])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(468 [WFC])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(469 [WHR])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(471 [WM])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(472 [WMB])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(473 [WMT])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(474 [WRK])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(475 [WU])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(476 [WY])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(477 [WYN])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(478 [WYNN])          0.00000000         0.00000000          0.00000000   \n",
      "Equity(479 [XEC])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(480 [XEL])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(481 [XL])            0.00000000         0.00000000          0.00000000   \n",
      "Equity(482 [XLNX])          0.02682024         0.00000000          0.00000000   \n",
      "Equity(483 [XOM])           0.00000000         0.01059595          0.00000000   \n",
      "Equity(484 [XRAY])          0.00000000         0.00000000          0.01537289   \n",
      "Equity(485 [XRX])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(486 [XYL])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(487 [YUM])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(488 [ZBH])           0.00000000         0.00000000          0.00000000   \n",
      "Equity(489 [ZION])          0.00000000         0.00000000          0.00000000   \n",
      "Equity(490 [ZTS])           0.00000000         0.00000000          0.00000000   \n",
      "\n",
      "                    Equity(485 [XRX])  Equity(486 [XYL])  Equity(487 [YUM])  \\\n",
      "Equity(0 [A])              0.00000000         0.00000000         0.00000000   \n",
      "Equity(1 [AAL])            0.00000000         0.00000000         0.00000000   \n",
      "Equity(2 [AAP])            0.00000000         0.00000000         0.00000000   \n",
      "Equity(3 [AAPL])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(4 [ABBV])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(5 [ABC])            0.00000000         0.00000000         0.00000000   \n",
      "Equity(6 [ABT])            0.00000000         0.00000000         0.00000000   \n",
      "Equity(7 [ACN])            0.00000000         0.00000000         0.00000000   \n",
      "Equity(8 [ADBE])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(9 [ADI])            0.00000000         0.00000000         0.00000000   \n",
      "Equity(10 [ADM])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(11 [ADP])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(12 [ADS])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(13 [ADSK])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(14 [AEE])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(15 [AEP])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(16 [AES])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(17 [AET])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(18 [AFL])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(19 [AGN])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(20 [AIG])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(21 [AIV])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(22 [AIZ])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(23 [AJG])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(24 [AKAM])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(25 [ALB])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(26 [ALGN])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(27 [ALK])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(28 [ALL])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(29 [ALLE])          0.00000000         0.00000000         0.00000000   \n",
      "...                               ...                ...                ...   \n",
      "Equity(460 [VRSN])         0.00000000         0.00000000         0.00000000   \n",
      "Equity(461 [VRTX])         0.00000000         0.00000000         0.00000000   \n",
      "Equity(462 [VTR])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(463 [VZ])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(464 [WAT])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(465 [WBA])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(466 [WDC])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(467 [WEC])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(468 [WFC])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(469 [WHR])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(471 [WM])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(472 [WMB])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(473 [WMT])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(474 [WRK])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(475 [WU])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(476 [WY])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(477 [WYN])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(478 [WYNN])         0.00000000         0.00000000         0.00000000   \n",
      "Equity(479 [XEC])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(480 [XEL])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(481 [XL])           0.00000000         0.00000000         0.00000000   \n",
      "Equity(482 [XLNX])         0.00000000         0.00000000         0.00000000   \n",
      "Equity(483 [XOM])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(484 [XRAY])         0.00000000         0.00000000         0.00000000   \n",
      "Equity(485 [XRX])          0.03944891         0.00000000         0.00000000   \n",
      "Equity(486 [XYL])          0.00000000         0.03178058         0.00000000   \n",
      "Equity(487 [YUM])          0.00000000         0.00000000         0.04382878   \n",
      "Equity(488 [ZBH])          0.00000000         0.00000000         0.00000000   \n",
      "Equity(489 [ZION])         0.00000000         0.00000000         0.00000000   \n",
      "Equity(490 [ZTS])          0.00000000         0.00000000         0.00000000   \n",
      "\n",
      "                    Equity(488 [ZBH])  Equity(489 [ZION])  Equity(490 [ZTS])  \n",
      "Equity(0 [A])              0.00000000          0.00000000         0.00000000  \n",
      "Equity(1 [AAL])            0.00000000          0.00000000         0.00000000  \n",
      "Equity(2 [AAP])            0.00000000          0.00000000         0.00000000  \n",
      "Equity(3 [AAPL])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(4 [ABBV])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(5 [ABC])            0.00000000          0.00000000         0.00000000  \n",
      "Equity(6 [ABT])            0.00000000          0.00000000         0.00000000  \n",
      "Equity(7 [ACN])            0.00000000          0.00000000         0.00000000  \n",
      "Equity(8 [ADBE])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(9 [ADI])            0.00000000          0.00000000         0.00000000  \n",
      "Equity(10 [ADM])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(11 [ADP])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(12 [ADS])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(13 [ADSK])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(14 [AEE])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(15 [AEP])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(16 [AES])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(17 [AET])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(18 [AFL])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(19 [AGN])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(20 [AIG])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(21 [AIV])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(22 [AIZ])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(23 [AJG])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(24 [AKAM])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(25 [ALB])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(26 [ALGN])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(27 [ALK])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(28 [ALL])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(29 [ALLE])          0.00000000          0.00000000         0.00000000  \n",
      "...                               ...                 ...                ...  \n",
      "Equity(460 [VRSN])         0.00000000          0.00000000         0.00000000  \n",
      "Equity(461 [VRTX])         0.00000000          0.00000000         0.00000000  \n",
      "Equity(462 [VTR])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(463 [VZ])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(464 [WAT])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(465 [WBA])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(466 [WDC])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(467 [WEC])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(468 [WFC])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(469 [WHR])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(471 [WM])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(472 [WMB])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(473 [WMT])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(474 [WRK])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(475 [WU])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(476 [WY])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(477 [WYN])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(478 [WYNN])         0.00000000          0.00000000         0.00000000  \n",
      "Equity(479 [XEC])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(480 [XEL])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(481 [XL])           0.00000000          0.00000000         0.00000000  \n",
      "Equity(482 [XLNX])         0.00000000          0.00000000         0.00000000  \n",
      "Equity(483 [XOM])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(484 [XRAY])         0.00000000          0.00000000         0.00000000  \n",
      "Equity(485 [XRX])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(486 [XYL])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(487 [YUM])          0.00000000          0.00000000         0.00000000  \n",
      "Equity(488 [ZBH])          0.02233925          0.00000000         0.00000000  \n",
      "Equity(489 [ZION])         0.00000000          0.02336495         0.00000000  \n",
      "Equity(490 [ZTS])          0.00000000          0.00000000         0.02734675  \n",
      "\n",
      "[490 rows x 490 columns]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <th>...</th>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>0.02272182</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.05191553</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.05431913</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.04791701</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.03038416</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01853902</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01480918</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02179118</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.03445348</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01896042</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(10 [ADM])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(11 [ADP])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(12 [ADS])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(13 [ADSK])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(14 [AEE])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(15 [AEP])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(16 [AES])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(17 [AET])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(18 [AFL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(19 [AGN])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(20 [AIG])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(21 [AIV])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(22 [AIZ])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(23 [AJG])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(24 [AKAM])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(25 [ALB])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(26 [ALGN])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(27 [ALK])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(28 [ALL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(29 [ALLE])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(460 [VRSN])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(461 [VRTX])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(462 [VTR])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(463 [VZ])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(464 [WAT])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(465 [WBA])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(466 [WDC])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(467 [WEC])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(468 [WFC])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(469 [WHR])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(471 [WM])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(472 [WMB])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(473 [WMT])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(474 [WRK])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(475 [WU])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(476 [WY])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(477 [WYN])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(478 [WYNN])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(479 [XEC])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(480 [XEL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02052419</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02682024</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01059595</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.01537289</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.03944891</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.03178058</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.04382878</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02233925</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02336495</td>\n",
       "      <td>0.00000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.00000000</td>\n",
       "      <td>0.02734675</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>490 rows × 490 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                    Equity(0 [A])  Equity(1 [AAL])  Equity(2 [AAP])  \\\n",
       "Equity(0 [A])          0.02272182       0.00000000       0.00000000   \n",
       "Equity(1 [AAL])        0.00000000       0.05191553       0.00000000   \n",
       "Equity(2 [AAP])        0.00000000       0.00000000       0.05431913   \n",
       "Equity(3 [AAPL])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(4 [ABBV])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(5 [ABC])        0.00000000       0.00000000       0.00000000   \n",
       "Equity(6 [ABT])        0.00000000       0.00000000       0.00000000   \n",
       "Equity(7 [ACN])        0.00000000       0.00000000       0.00000000   \n",
       "Equity(8 [ADBE])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(9 [ADI])        0.00000000       0.00000000       0.00000000   \n",
       "Equity(10 [ADM])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(11 [ADP])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(12 [ADS])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(13 [ADSK])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(14 [AEE])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(15 [AEP])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(16 [AES])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(17 [AET])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(18 [AFL])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(19 [AGN])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(20 [AIG])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(21 [AIV])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(22 [AIZ])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(23 [AJG])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(24 [AKAM])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(25 [ALB])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(26 [ALGN])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(27 [ALK])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(28 [ALL])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(29 [ALLE])      0.00000000       0.00000000       0.00000000   \n",
       "...                           ...              ...              ...   \n",
       "Equity(460 [VRSN])     0.00000000       0.00000000       0.00000000   \n",
       "Equity(461 [VRTX])     0.00000000       0.00000000       0.00000000   \n",
       "Equity(462 [VTR])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(463 [VZ])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(464 [WAT])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(465 [WBA])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(466 [WDC])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(467 [WEC])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(468 [WFC])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(469 [WHR])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(471 [WM])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(472 [WMB])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(473 [WMT])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(474 [WRK])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(475 [WU])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(476 [WY])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(477 [WYN])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(478 [WYNN])     0.00000000       0.00000000       0.00000000   \n",
       "Equity(479 [XEC])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(480 [XEL])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(481 [XL])       0.00000000       0.00000000       0.00000000   \n",
       "Equity(482 [XLNX])     0.00000000       0.00000000       0.00000000   \n",
       "Equity(483 [XOM])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(484 [XRAY])     0.00000000       0.00000000       0.00000000   \n",
       "Equity(485 [XRX])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(486 [XYL])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(487 [YUM])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(488 [ZBH])      0.00000000       0.00000000       0.00000000   \n",
       "Equity(489 [ZION])     0.00000000       0.00000000       0.00000000   \n",
       "Equity(490 [ZTS])      0.00000000       0.00000000       0.00000000   \n",
       "\n",
       "                    Equity(3 [AAPL])  Equity(4 [ABBV])  Equity(5 [ABC])  \\\n",
       "Equity(0 [A])             0.00000000        0.00000000       0.00000000   \n",
       "Equity(1 [AAL])           0.00000000        0.00000000       0.00000000   \n",
       "Equity(2 [AAP])           0.00000000        0.00000000       0.00000000   \n",
       "Equity(3 [AAPL])          0.04791701        0.00000000       0.00000000   \n",
       "Equity(4 [ABBV])          0.00000000        0.03038416       0.00000000   \n",
       "Equity(5 [ABC])           0.00000000        0.00000000       0.01853902   \n",
       "Equity(6 [ABT])           0.00000000        0.00000000       0.00000000   \n",
       "Equity(7 [ACN])           0.00000000        0.00000000       0.00000000   \n",
       "Equity(8 [ADBE])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(9 [ADI])           0.00000000        0.00000000       0.00000000   \n",
       "Equity(10 [ADM])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(11 [ADP])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(12 [ADS])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(13 [ADSK])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(14 [AEE])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(15 [AEP])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(16 [AES])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(17 [AET])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(18 [AFL])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(19 [AGN])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(20 [AIG])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(21 [AIV])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(22 [AIZ])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(23 [AJG])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(24 [AKAM])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(25 [ALB])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(26 [ALGN])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(27 [ALK])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(28 [ALL])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(29 [ALLE])         0.00000000        0.00000000       0.00000000   \n",
       "...                              ...               ...              ...   \n",
       "Equity(460 [VRSN])        0.00000000        0.00000000       0.00000000   \n",
       "Equity(461 [VRTX])        0.00000000        0.00000000       0.00000000   \n",
       "Equity(462 [VTR])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(463 [VZ])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(464 [WAT])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(465 [WBA])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(466 [WDC])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(467 [WEC])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(468 [WFC])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(469 [WHR])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(471 [WM])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(472 [WMB])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(473 [WMT])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(474 [WRK])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(475 [WU])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(476 [WY])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(477 [WYN])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(478 [WYNN])        0.00000000        0.00000000       0.00000000   \n",
       "Equity(479 [XEC])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(480 [XEL])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(481 [XL])          0.00000000        0.00000000       0.00000000   \n",
       "Equity(482 [XLNX])        0.00000000        0.00000000       0.00000000   \n",
       "Equity(483 [XOM])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(484 [XRAY])        0.00000000        0.00000000       0.00000000   \n",
       "Equity(485 [XRX])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(486 [XYL])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(487 [YUM])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(488 [ZBH])         0.00000000        0.00000000       0.00000000   \n",
       "Equity(489 [ZION])        0.00000000        0.00000000       0.00000000   \n",
       "Equity(490 [ZTS])         0.00000000        0.00000000       0.00000000   \n",
       "\n",
       "                    Equity(6 [ABT])  Equity(7 [ACN])  Equity(8 [ADBE])  \\\n",
       "Equity(0 [A])            0.00000000       0.00000000        0.00000000   \n",
       "Equity(1 [AAL])          0.00000000       0.00000000        0.00000000   \n",
       "Equity(2 [AAP])          0.00000000       0.00000000        0.00000000   \n",
       "Equity(3 [AAPL])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(4 [ABBV])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(5 [ABC])          0.00000000       0.00000000        0.00000000   \n",
       "Equity(6 [ABT])          0.01480918       0.00000000        0.00000000   \n",
       "Equity(7 [ACN])          0.00000000       0.02179118        0.00000000   \n",
       "Equity(8 [ADBE])         0.00000000       0.00000000        0.03445348   \n",
       "Equity(9 [ADI])          0.00000000       0.00000000        0.00000000   \n",
       "Equity(10 [ADM])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(11 [ADP])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(12 [ADS])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(13 [ADSK])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(14 [AEE])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(15 [AEP])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(16 [AES])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(17 [AET])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(18 [AFL])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(19 [AGN])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(20 [AIG])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(21 [AIV])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(22 [AIZ])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(23 [AJG])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(24 [AKAM])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(25 [ALB])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(26 [ALGN])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(27 [ALK])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(28 [ALL])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(29 [ALLE])        0.00000000       0.00000000        0.00000000   \n",
       "...                             ...              ...               ...   \n",
       "Equity(460 [VRSN])       0.00000000       0.00000000        0.00000000   \n",
       "Equity(461 [VRTX])       0.00000000       0.00000000        0.00000000   \n",
       "Equity(462 [VTR])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(463 [VZ])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(464 [WAT])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(465 [WBA])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(466 [WDC])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(467 [WEC])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(468 [WFC])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(469 [WHR])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(471 [WM])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(472 [WMB])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(473 [WMT])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(474 [WRK])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(475 [WU])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(476 [WY])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(477 [WYN])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(478 [WYNN])       0.00000000       0.00000000        0.00000000   \n",
       "Equity(479 [XEC])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(480 [XEL])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(481 [XL])         0.00000000       0.00000000        0.00000000   \n",
       "Equity(482 [XLNX])       0.00000000       0.00000000        0.00000000   \n",
       "Equity(483 [XOM])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(484 [XRAY])       0.00000000       0.00000000        0.00000000   \n",
       "Equity(485 [XRX])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(486 [XYL])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(487 [YUM])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(488 [ZBH])        0.00000000       0.00000000        0.00000000   \n",
       "Equity(489 [ZION])       0.00000000       0.00000000        0.00000000   \n",
       "Equity(490 [ZTS])        0.00000000       0.00000000        0.00000000   \n",
       "\n",
       "                    Equity(9 [ADI])        ...          Equity(481 [XL])  \\\n",
       "Equity(0 [A])            0.00000000        ...                0.00000000   \n",
       "Equity(1 [AAL])          0.00000000        ...                0.00000000   \n",
       "Equity(2 [AAP])          0.00000000        ...                0.00000000   \n",
       "Equity(3 [AAPL])         0.00000000        ...                0.00000000   \n",
       "Equity(4 [ABBV])         0.00000000        ...                0.00000000   \n",
       "Equity(5 [ABC])          0.00000000        ...                0.00000000   \n",
       "Equity(6 [ABT])          0.00000000        ...                0.00000000   \n",
       "Equity(7 [ACN])          0.00000000        ...                0.00000000   \n",
       "Equity(8 [ADBE])         0.00000000        ...                0.00000000   \n",
       "Equity(9 [ADI])          0.01896042        ...                0.00000000   \n",
       "Equity(10 [ADM])         0.00000000        ...                0.00000000   \n",
       "Equity(11 [ADP])         0.00000000        ...                0.00000000   \n",
       "Equity(12 [ADS])         0.00000000        ...                0.00000000   \n",
       "Equity(13 [ADSK])        0.00000000        ...                0.00000000   \n",
       "Equity(14 [AEE])         0.00000000        ...                0.00000000   \n",
       "Equity(15 [AEP])         0.00000000        ...                0.00000000   \n",
       "Equity(16 [AES])         0.00000000        ...                0.00000000   \n",
       "Equity(17 [AET])         0.00000000        ...                0.00000000   \n",
       "Equity(18 [AFL])         0.00000000        ...                0.00000000   \n",
       "Equity(19 [AGN])         0.00000000        ...                0.00000000   \n",
       "Equity(20 [AIG])         0.00000000        ...                0.00000000   \n",
       "Equity(21 [AIV])         0.00000000        ...                0.00000000   \n",
       "Equity(22 [AIZ])         0.00000000        ...                0.00000000   \n",
       "Equity(23 [AJG])         0.00000000        ...                0.00000000   \n",
       "Equity(24 [AKAM])        0.00000000        ...                0.00000000   \n",
       "Equity(25 [ALB])         0.00000000        ...                0.00000000   \n",
       "Equity(26 [ALGN])        0.00000000        ...                0.00000000   \n",
       "Equity(27 [ALK])         0.00000000        ...                0.00000000   \n",
       "Equity(28 [ALL])         0.00000000        ...                0.00000000   \n",
       "Equity(29 [ALLE])        0.00000000        ...                0.00000000   \n",
       "...                             ...        ...                       ...   \n",
       "Equity(460 [VRSN])       0.00000000        ...                0.00000000   \n",
       "Equity(461 [VRTX])       0.00000000        ...                0.00000000   \n",
       "Equity(462 [VTR])        0.00000000        ...                0.00000000   \n",
       "Equity(463 [VZ])         0.00000000        ...                0.00000000   \n",
       "Equity(464 [WAT])        0.00000000        ...                0.00000000   \n",
       "Equity(465 [WBA])        0.00000000        ...                0.00000000   \n",
       "Equity(466 [WDC])        0.00000000        ...                0.00000000   \n",
       "Equity(467 [WEC])        0.00000000        ...                0.00000000   \n",
       "Equity(468 [WFC])        0.00000000        ...                0.00000000   \n",
       "Equity(469 [WHR])        0.00000000        ...                0.00000000   \n",
       "Equity(471 [WM])         0.00000000        ...                0.00000000   \n",
       "Equity(472 [WMB])        0.00000000        ...                0.00000000   \n",
       "Equity(473 [WMT])        0.00000000        ...                0.00000000   \n",
       "Equity(474 [WRK])        0.00000000        ...                0.00000000   \n",
       "Equity(475 [WU])         0.00000000        ...                0.00000000   \n",
       "Equity(476 [WY])         0.00000000        ...                0.00000000   \n",
       "Equity(477 [WYN])        0.00000000        ...                0.00000000   \n",
       "Equity(478 [WYNN])       0.00000000        ...                0.00000000   \n",
       "Equity(479 [XEC])        0.00000000        ...                0.00000000   \n",
       "Equity(480 [XEL])        0.00000000        ...                0.00000000   \n",
       "Equity(481 [XL])         0.00000000        ...                0.02052419   \n",
       "Equity(482 [XLNX])       0.00000000        ...                0.00000000   \n",
       "Equity(483 [XOM])        0.00000000        ...                0.00000000   \n",
       "Equity(484 [XRAY])       0.00000000        ...                0.00000000   \n",
       "Equity(485 [XRX])        0.00000000        ...                0.00000000   \n",
       "Equity(486 [XYL])        0.00000000        ...                0.00000000   \n",
       "Equity(487 [YUM])        0.00000000        ...                0.00000000   \n",
       "Equity(488 [ZBH])        0.00000000        ...                0.00000000   \n",
       "Equity(489 [ZION])       0.00000000        ...                0.00000000   \n",
       "Equity(490 [ZTS])        0.00000000        ...                0.00000000   \n",
       "\n",
       "                    Equity(482 [XLNX])  Equity(483 [XOM])  Equity(484 [XRAY])  \\\n",
       "Equity(0 [A])               0.00000000         0.00000000          0.00000000   \n",
       "Equity(1 [AAL])             0.00000000         0.00000000          0.00000000   \n",
       "Equity(2 [AAP])             0.00000000         0.00000000          0.00000000   \n",
       "Equity(3 [AAPL])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(4 [ABBV])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(5 [ABC])             0.00000000         0.00000000          0.00000000   \n",
       "Equity(6 [ABT])             0.00000000         0.00000000          0.00000000   \n",
       "Equity(7 [ACN])             0.00000000         0.00000000          0.00000000   \n",
       "Equity(8 [ADBE])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(9 [ADI])             0.00000000         0.00000000          0.00000000   \n",
       "Equity(10 [ADM])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(11 [ADP])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(12 [ADS])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(13 [ADSK])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(14 [AEE])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(15 [AEP])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(16 [AES])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(17 [AET])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(18 [AFL])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(19 [AGN])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(20 [AIG])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(21 [AIV])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(22 [AIZ])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(23 [AJG])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(24 [AKAM])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(25 [ALB])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(26 [ALGN])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(27 [ALK])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(28 [ALL])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(29 [ALLE])           0.00000000         0.00000000          0.00000000   \n",
       "...                                ...                ...                 ...   \n",
       "Equity(460 [VRSN])          0.00000000         0.00000000          0.00000000   \n",
       "Equity(461 [VRTX])          0.00000000         0.00000000          0.00000000   \n",
       "Equity(462 [VTR])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(463 [VZ])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(464 [WAT])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(465 [WBA])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(466 [WDC])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(467 [WEC])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(468 [WFC])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(469 [WHR])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(471 [WM])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(472 [WMB])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(473 [WMT])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(474 [WRK])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(475 [WU])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(476 [WY])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(477 [WYN])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(478 [WYNN])          0.00000000         0.00000000          0.00000000   \n",
       "Equity(479 [XEC])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(480 [XEL])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(481 [XL])            0.00000000         0.00000000          0.00000000   \n",
       "Equity(482 [XLNX])          0.02682024         0.00000000          0.00000000   \n",
       "Equity(483 [XOM])           0.00000000         0.01059595          0.00000000   \n",
       "Equity(484 [XRAY])          0.00000000         0.00000000          0.01537289   \n",
       "Equity(485 [XRX])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(486 [XYL])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(487 [YUM])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(488 [ZBH])           0.00000000         0.00000000          0.00000000   \n",
       "Equity(489 [ZION])          0.00000000         0.00000000          0.00000000   \n",
       "Equity(490 [ZTS])           0.00000000         0.00000000          0.00000000   \n",
       "\n",
       "                    Equity(485 [XRX])  Equity(486 [XYL])  Equity(487 [YUM])  \\\n",
       "Equity(0 [A])              0.00000000         0.00000000         0.00000000   \n",
       "Equity(1 [AAL])            0.00000000         0.00000000         0.00000000   \n",
       "Equity(2 [AAP])            0.00000000         0.00000000         0.00000000   \n",
       "Equity(3 [AAPL])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(4 [ABBV])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(5 [ABC])            0.00000000         0.00000000         0.00000000   \n",
       "Equity(6 [ABT])            0.00000000         0.00000000         0.00000000   \n",
       "Equity(7 [ACN])            0.00000000         0.00000000         0.00000000   \n",
       "Equity(8 [ADBE])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(9 [ADI])            0.00000000         0.00000000         0.00000000   \n",
       "Equity(10 [ADM])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(11 [ADP])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(12 [ADS])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(13 [ADSK])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(14 [AEE])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(15 [AEP])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(16 [AES])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(17 [AET])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(18 [AFL])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(19 [AGN])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(20 [AIG])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(21 [AIV])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(22 [AIZ])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(23 [AJG])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(24 [AKAM])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(25 [ALB])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(26 [ALGN])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(27 [ALK])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(28 [ALL])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(29 [ALLE])          0.00000000         0.00000000         0.00000000   \n",
       "...                               ...                ...                ...   \n",
       "Equity(460 [VRSN])         0.00000000         0.00000000         0.00000000   \n",
       "Equity(461 [VRTX])         0.00000000         0.00000000         0.00000000   \n",
       "Equity(462 [VTR])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(463 [VZ])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(464 [WAT])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(465 [WBA])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(466 [WDC])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(467 [WEC])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(468 [WFC])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(469 [WHR])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(471 [WM])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(472 [WMB])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(473 [WMT])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(474 [WRK])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(475 [WU])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(476 [WY])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(477 [WYN])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(478 [WYNN])         0.00000000         0.00000000         0.00000000   \n",
       "Equity(479 [XEC])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(480 [XEL])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(481 [XL])           0.00000000         0.00000000         0.00000000   \n",
       "Equity(482 [XLNX])         0.00000000         0.00000000         0.00000000   \n",
       "Equity(483 [XOM])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(484 [XRAY])         0.00000000         0.00000000         0.00000000   \n",
       "Equity(485 [XRX])          0.03944891         0.00000000         0.00000000   \n",
       "Equity(486 [XYL])          0.00000000         0.03178058         0.00000000   \n",
       "Equity(487 [YUM])          0.00000000         0.00000000         0.04382878   \n",
       "Equity(488 [ZBH])          0.00000000         0.00000000         0.00000000   \n",
       "Equity(489 [ZION])         0.00000000         0.00000000         0.00000000   \n",
       "Equity(490 [ZTS])          0.00000000         0.00000000         0.00000000   \n",
       "\n",
       "                    Equity(488 [ZBH])  Equity(489 [ZION])  Equity(490 [ZTS])  \n",
       "Equity(0 [A])              0.00000000          0.00000000         0.00000000  \n",
       "Equity(1 [AAL])            0.00000000          0.00000000         0.00000000  \n",
       "Equity(2 [AAP])            0.00000000          0.00000000         0.00000000  \n",
       "Equity(3 [AAPL])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(4 [ABBV])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(5 [ABC])            0.00000000          0.00000000         0.00000000  \n",
       "Equity(6 [ABT])            0.00000000          0.00000000         0.00000000  \n",
       "Equity(7 [ACN])            0.00000000          0.00000000         0.00000000  \n",
       "Equity(8 [ADBE])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(9 [ADI])            0.00000000          0.00000000         0.00000000  \n",
       "Equity(10 [ADM])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(11 [ADP])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(12 [ADS])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(13 [ADSK])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(14 [AEE])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(15 [AEP])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(16 [AES])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(17 [AET])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(18 [AFL])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(19 [AGN])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(20 [AIG])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(21 [AIV])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(22 [AIZ])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(23 [AJG])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(24 [AKAM])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(25 [ALB])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(26 [ALGN])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(27 [ALK])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(28 [ALL])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(29 [ALLE])          0.00000000          0.00000000         0.00000000  \n",
       "...                               ...                 ...                ...  \n",
       "Equity(460 [VRSN])         0.00000000          0.00000000         0.00000000  \n",
       "Equity(461 [VRTX])         0.00000000          0.00000000         0.00000000  \n",
       "Equity(462 [VTR])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(463 [VZ])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(464 [WAT])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(465 [WBA])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(466 [WDC])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(467 [WEC])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(468 [WFC])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(469 [WHR])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(471 [WM])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(472 [WMB])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(473 [WMT])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(474 [WRK])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(475 [WU])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(476 [WY])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(477 [WYN])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(478 [WYNN])         0.00000000          0.00000000         0.00000000  \n",
       "Equity(479 [XEC])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(480 [XEL])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(481 [XL])           0.00000000          0.00000000         0.00000000  \n",
       "Equity(482 [XLNX])         0.00000000          0.00000000         0.00000000  \n",
       "Equity(483 [XOM])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(484 [XRAY])         0.00000000          0.00000000         0.00000000  \n",
       "Equity(485 [XRX])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(486 [XYL])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(487 [YUM])          0.00000000          0.00000000         0.00000000  \n",
       "Equity(488 [ZBH])          0.02233925          0.00000000         0.00000000  \n",
       "Equity(489 [ZION])         0.00000000          0.02336495         0.00000000  \n",
       "Equity(490 [ZTS])          0.00000000          0.00000000         0.02734675  \n",
       "\n",
       "[490 rows x 490 columns]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "risk_model['idiosyncratic_var_matrix'] = idiosyncratic_var_matrix(five_year_returns, risk_model['factor_returns'], risk_model['factor_betas'], ann_factor)\n",
    "\n",
    "risk_model['idiosyncratic_var_matrix']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Idiosyncratic Variance Vector\n",
    "Implement `idiosyncratic_var_vector` to get the idiosyncratic variance Vector."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                         0\n",
      "Equity(0 [A])   0.02272535\n",
      "Equity(1 [AAL]) 0.05190083\n",
      "Equity(2 [AAP]) 0.05431181\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def idiosyncratic_var_vector(returns, idiosyncratic_var_matrix):\n",
    "    \"\"\"\n",
    "    Get the idiosyncratic variance vector\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    returns : DataFrame\n",
    "        Returns for each ticker and date\n",
    "    idiosyncratic_var_matrix : DataFrame\n",
    "        Idiosyncratic variance matrix\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    idiosyncratic_var_vector : DataFrame\n",
    "        Idiosyncratic variance Vector\n",
    "    \"\"\"\n",
    "#     print(returns)\n",
    "#     print(idiosyncratic_var_matrix)\n",
    "    di = np.diag(idiosyncratic_var_matrix)\n",
    "#     print(di)\n",
    "    r = pd.DataFrame(di, returns.columns)\n",
    "    print(r)\n",
    "    \n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_idiosyncratic_var_vector(idiosyncratic_var_vector)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            0\n",
      "Equity(0 [A])      0.02272182\n",
      "Equity(1 [AAL])    0.05191553\n",
      "Equity(2 [AAP])    0.05431913\n",
      "Equity(3 [AAPL])   0.04791701\n",
      "Equity(4 [ABBV])   0.03038416\n",
      "Equity(5 [ABC])    0.01853902\n",
      "Equity(6 [ABT])    0.01480918\n",
      "Equity(7 [ACN])    0.02179118\n",
      "Equity(8 [ADBE])   0.03445348\n",
      "Equity(9 [ADI])    0.01896042\n",
      "Equity(10 [ADM])   0.02951780\n",
      "Equity(11 [ADP])   0.00829046\n",
      "Equity(12 [ADS])   0.02702354\n",
      "Equity(13 [ADSK])  0.05219736\n",
      "Equity(14 [AEE])   0.00959055\n",
      "Equity(15 [AEP])   0.00798956\n",
      "Equity(16 [AES])   0.03075426\n",
      "Equity(17 [AET])   0.03587226\n",
      "Equity(18 [AFL])   0.01893741\n",
      "Equity(19 [AGN])   0.04216401\n",
      "Equity(20 [AIG])   0.03313870\n",
      "Equity(21 [AIV])   0.01466858\n",
      "Equity(22 [AIZ])   0.02061921\n",
      "Equity(23 [AJG])   0.01157794\n",
      "Equity(24 [AKAM])  0.09675768\n",
      "Equity(25 [ALB])   0.04120121\n",
      "Equity(26 [ALGN])  0.10501906\n",
      "Equity(27 [ALK])   0.03390292\n",
      "Equity(28 [ALL])   0.01674016\n",
      "Equity(29 [ALLE])  0.01453693\n",
      "...                       ...\n",
      "Equity(460 [VRSN]) 0.04355934\n",
      "Equity(461 [VRTX]) 0.01160307\n",
      "Equity(462 [VTR])  0.01238426\n",
      "Equity(463 [VZ])   0.01824269\n",
      "Equity(464 [WAT])  0.02524148\n",
      "Equity(465 [WBA])  0.04834345\n",
      "Equity(466 [WDC])  0.04267602\n",
      "Equity(467 [WEC])  0.00659853\n",
      "Equity(468 [WFC])  0.01138344\n",
      "Equity(469 [WHR])  0.05784307\n",
      "Equity(471 [WM])   0.01510784\n",
      "Equity(472 [WMB])  0.05866035\n",
      "Equity(473 [WMT])  0.01608038\n",
      "Equity(474 [WRK])  0.00835596\n",
      "Equity(475 [WU])   0.04770317\n",
      "Equity(476 [WY])   0.02646591\n",
      "Equity(477 [WYN])  0.02428968\n",
      "Equity(478 [WYNN]) 0.05794839\n",
      "Equity(479 [XEC])  0.04871686\n",
      "Equity(480 [XEL])  0.00533927\n",
      "Equity(481 [XL])   0.02052419\n",
      "Equity(482 [XLNX]) 0.02682024\n",
      "Equity(483 [XOM])  0.01059595\n",
      "Equity(484 [XRAY]) 0.01537289\n",
      "Equity(485 [XRX])  0.03944891\n",
      "Equity(486 [XYL])  0.03178058\n",
      "Equity(487 [YUM])  0.04382878\n",
      "Equity(488 [ZBH])  0.02233925\n",
      "Equity(489 [ZION]) 0.02336495\n",
      "Equity(490 [ZTS])  0.02734675\n",
      "\n",
      "[490 rows x 1 columns]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>0.02272182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>0.05191553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>0.05431913</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>0.04791701</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>0.03038416</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <td>0.01853902</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <td>0.01480918</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <td>0.02179118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <td>0.03445348</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <td>0.01896042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(10 [ADM])</th>\n",
       "      <td>0.02951780</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(11 [ADP])</th>\n",
       "      <td>0.00829046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(12 [ADS])</th>\n",
       "      <td>0.02702354</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(13 [ADSK])</th>\n",
       "      <td>0.05219736</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(14 [AEE])</th>\n",
       "      <td>0.00959055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(15 [AEP])</th>\n",
       "      <td>0.00798956</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(16 [AES])</th>\n",
       "      <td>0.03075426</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(17 [AET])</th>\n",
       "      <td>0.03587226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(18 [AFL])</th>\n",
       "      <td>0.01893741</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(19 [AGN])</th>\n",
       "      <td>0.04216401</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(20 [AIG])</th>\n",
       "      <td>0.03313870</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(21 [AIV])</th>\n",
       "      <td>0.01466858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(22 [AIZ])</th>\n",
       "      <td>0.02061921</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(23 [AJG])</th>\n",
       "      <td>0.01157794</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(24 [AKAM])</th>\n",
       "      <td>0.09675768</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(25 [ALB])</th>\n",
       "      <td>0.04120121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(26 [ALGN])</th>\n",
       "      <td>0.10501906</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(27 [ALK])</th>\n",
       "      <td>0.03390292</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(28 [ALL])</th>\n",
       "      <td>0.01674016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(29 [ALLE])</th>\n",
       "      <td>0.01453693</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(460 [VRSN])</th>\n",
       "      <td>0.04355934</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(461 [VRTX])</th>\n",
       "      <td>0.01160307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(462 [VTR])</th>\n",
       "      <td>0.01238426</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(463 [VZ])</th>\n",
       "      <td>0.01824269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(464 [WAT])</th>\n",
       "      <td>0.02524148</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(465 [WBA])</th>\n",
       "      <td>0.04834345</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(466 [WDC])</th>\n",
       "      <td>0.04267602</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(467 [WEC])</th>\n",
       "      <td>0.00659853</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(468 [WFC])</th>\n",
       "      <td>0.01138344</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(469 [WHR])</th>\n",
       "      <td>0.05784307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(471 [WM])</th>\n",
       "      <td>0.01510784</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(472 [WMB])</th>\n",
       "      <td>0.05866035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(473 [WMT])</th>\n",
       "      <td>0.01608038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(474 [WRK])</th>\n",
       "      <td>0.00835596</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(475 [WU])</th>\n",
       "      <td>0.04770317</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(476 [WY])</th>\n",
       "      <td>0.02646591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(477 [WYN])</th>\n",
       "      <td>0.02428968</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(478 [WYNN])</th>\n",
       "      <td>0.05794839</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(479 [XEC])</th>\n",
       "      <td>0.04871686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(480 [XEL])</th>\n",
       "      <td>0.00533927</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <td>0.02052419</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <td>0.02682024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <td>0.01059595</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <td>0.01537289</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <td>0.03944891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <td>0.03178058</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <td>0.04382878</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <td>0.02233925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <td>0.02336495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "      <td>0.02734675</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>490 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            0\n",
       "Equity(0 [A])      0.02272182\n",
       "Equity(1 [AAL])    0.05191553\n",
       "Equity(2 [AAP])    0.05431913\n",
       "Equity(3 [AAPL])   0.04791701\n",
       "Equity(4 [ABBV])   0.03038416\n",
       "Equity(5 [ABC])    0.01853902\n",
       "Equity(6 [ABT])    0.01480918\n",
       "Equity(7 [ACN])    0.02179118\n",
       "Equity(8 [ADBE])   0.03445348\n",
       "Equity(9 [ADI])    0.01896042\n",
       "Equity(10 [ADM])   0.02951780\n",
       "Equity(11 [ADP])   0.00829046\n",
       "Equity(12 [ADS])   0.02702354\n",
       "Equity(13 [ADSK])  0.05219736\n",
       "Equity(14 [AEE])   0.00959055\n",
       "Equity(15 [AEP])   0.00798956\n",
       "Equity(16 [AES])   0.03075426\n",
       "Equity(17 [AET])   0.03587226\n",
       "Equity(18 [AFL])   0.01893741\n",
       "Equity(19 [AGN])   0.04216401\n",
       "Equity(20 [AIG])   0.03313870\n",
       "Equity(21 [AIV])   0.01466858\n",
       "Equity(22 [AIZ])   0.02061921\n",
       "Equity(23 [AJG])   0.01157794\n",
       "Equity(24 [AKAM])  0.09675768\n",
       "Equity(25 [ALB])   0.04120121\n",
       "Equity(26 [ALGN])  0.10501906\n",
       "Equity(27 [ALK])   0.03390292\n",
       "Equity(28 [ALL])   0.01674016\n",
       "Equity(29 [ALLE])  0.01453693\n",
       "...                       ...\n",
       "Equity(460 [VRSN]) 0.04355934\n",
       "Equity(461 [VRTX]) 0.01160307\n",
       "Equity(462 [VTR])  0.01238426\n",
       "Equity(463 [VZ])   0.01824269\n",
       "Equity(464 [WAT])  0.02524148\n",
       "Equity(465 [WBA])  0.04834345\n",
       "Equity(466 [WDC])  0.04267602\n",
       "Equity(467 [WEC])  0.00659853\n",
       "Equity(468 [WFC])  0.01138344\n",
       "Equity(469 [WHR])  0.05784307\n",
       "Equity(471 [WM])   0.01510784\n",
       "Equity(472 [WMB])  0.05866035\n",
       "Equity(473 [WMT])  0.01608038\n",
       "Equity(474 [WRK])  0.00835596\n",
       "Equity(475 [WU])   0.04770317\n",
       "Equity(476 [WY])   0.02646591\n",
       "Equity(477 [WYN])  0.02428968\n",
       "Equity(478 [WYNN]) 0.05794839\n",
       "Equity(479 [XEC])  0.04871686\n",
       "Equity(480 [XEL])  0.00533927\n",
       "Equity(481 [XL])   0.02052419\n",
       "Equity(482 [XLNX]) 0.02682024\n",
       "Equity(483 [XOM])  0.01059595\n",
       "Equity(484 [XRAY]) 0.01537289\n",
       "Equity(485 [XRX])  0.03944891\n",
       "Equity(486 [XYL])  0.03178058\n",
       "Equity(487 [YUM])  0.04382878\n",
       "Equity(488 [ZBH])  0.02233925\n",
       "Equity(489 [ZION]) 0.02336495\n",
       "Equity(490 [ZTS])  0.02734675\n",
       "\n",
       "[490 rows x 1 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "risk_model['idiosyncratic_var_vector'] = idiosyncratic_var_vector(five_year_returns, risk_model['idiosyncratic_var_matrix'])\n",
    "\n",
    "risk_model['idiosyncratic_var_vector']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Predict using the Risk Model\n",
    "Using the data we calculated in the risk model, implement `predict_portfolio_risk` to predict the portfolio risk using the formula $ \\sqrt{X^{T}(BFB^{T} + S)X} $ where:\n",
    "- $ X $ is the portfolio weights\n",
    "- $ B $ is the factor betas\n",
    "- $ F $ is the factor covariance matrix\n",
    "- $ S $ is the idiosyncratic variance matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                         0          1          2\n",
      "Equity(0 [A])   0.04936831 0.03935469 0.02138554\n",
      "Equity(1 [AAL]) 0.03935469 0.14896119 0.03606555\n",
      "Equity(2 [AAP]) 0.02138554 0.03606555 0.04846507\n",
      "           0\n",
      "0 0.00302907\n",
      "0.0550369570517\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def predict_portfolio_risk(factor_betas, factor_cov_matrix, idiosyncratic_var_matrix, weights):\n",
    "    \"\"\"\n",
    "    Get the predicted portfolio risk\n",
    "    \n",
    "    Formula for predicted portfolio risk is sqrt(X.T(BFB.T + S)X) where:\n",
    "      X is the portfolio weights\n",
    "      B is the factor betas\n",
    "      F is the factor covariance matrix\n",
    "      S is the idiosyncratic variance matrix\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    factor_betas : DataFrame\n",
    "        Factor betas\n",
    "    factor_cov_matrix : 2 dimensional Ndarray\n",
    "        Factor covariance matrix\n",
    "    idiosyncratic_var_matrix : DataFrame\n",
    "        Idiosyncratic variance matrix\n",
    "    weights : DataFrame\n",
    "        Portfolio weights\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    predicted_portfolio_risk : float\n",
    "        Predicted portfolio risk\n",
    "    \"\"\"\n",
    "    assert len(factor_cov_matrix.shape) == 2\n",
    "    \n",
    "#     print(factor_betas)\n",
    "#     print(factor_cov_matrix)\n",
    "#     print(idiosyncratic_var_matrix)\n",
    "#     print(weights)\n",
    "    x = factor_betas.dot(factor_cov_matrix.dot(factor_betas.T)) + idiosyncratic_var_matrix\n",
    "    print(x)\n",
    "    y = weights.T.dot(x).dot(weights)\n",
    "    print(y)\n",
    "    r = np.sqrt(y)[0][0]\n",
    "    print(r)\n",
    "    \n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_predict_portfolio_risk(predict_portfolio_risk)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's see what the portfolio risk would be if we had even weights across all stocks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            0          1          2          3          4  \\\n",
      "Equity(0 [A])      0.05139760 0.03763785 0.02117289 0.01952669 0.01107770   \n",
      "Equity(1 [AAL])    0.03763785 0.23252469 0.03403079 0.02714248 0.01587916   \n",
      "Equity(2 [AAP])    0.02117289 0.03403079 0.07873997 0.01803403 0.01246844   \n",
      "Equity(3 [AAPL])   0.01952669 0.02714248 0.01803403 0.07107298 0.01022372   \n",
      "Equity(4 [ABBV])   0.01107770 0.01587916 0.01246844 0.01022372 0.04501126   \n",
      "Equity(5 [ABC])    0.01853623 0.02607857 0.01473939 0.01334228 0.00993055   \n",
      "Equity(6 [ABT])    0.01968997 0.02195395 0.01625485 0.01292377 0.01275821   \n",
      "Equity(7 [ACN])    0.02770110 0.02910174 0.01998703 0.02100105 0.01105744   \n",
      "Equity(8 [ADBE])   0.02913070 0.03895269 0.02247223 0.02326555 0.01243912   \n",
      "Equity(9 [ADI])    0.02826291 0.03329288 0.02257002 0.02803904 0.01394229   \n",
      "Equity(10 [ADM])   0.02740871 0.03109359 0.02056966 0.01986201 0.01136794   \n",
      "Equity(11 [ADP])   0.02369656 0.02857755 0.01871826 0.01748961 0.01146585   \n",
      "Equity(12 [ADS])   0.02524183 0.03736563 0.02170753 0.02070284 0.01218429   \n",
      "Equity(13 [ADSK])  0.03656944 0.04968209 0.02736587 0.03002068 0.01227347   \n",
      "Equity(14 [AEE])   0.01723217 0.02102863 0.01152896 0.00980100 0.00829071   \n",
      "Equity(15 [AEP])   0.01470956 0.01832820 0.01052442 0.00859192 0.00799019   \n",
      "Equity(16 [AES])   0.02747792 0.03241796 0.01884024 0.02022112 0.01185723   \n",
      "Equity(17 [AET])   0.02540748 0.03413657 0.02178840 0.01755156 0.01495895   \n",
      "Equity(18 [AFL])   0.03317861 0.04027780 0.02349469 0.02326554 0.01089292   \n",
      "Equity(19 [AGN])   0.02162050 0.03558156 0.02105741 0.01799677 0.01709607   \n",
      "Equity(20 [AIG])   0.03617234 0.05042729 0.02666676 0.02606317 0.01278395   \n",
      "Equity(21 [AIV])   0.02386979 0.03679365 0.02029657 0.01788916 0.00910601   \n",
      "Equity(22 [AIZ])   0.02590217 0.03591115 0.01953816 0.01780600 0.01022900   \n",
      "Equity(23 [AJG])   0.02110366 0.02811705 0.01655209 0.01463134 0.00878407   \n",
      "Equity(24 [AKAM])  0.03302827 0.04271020 0.02875935 0.02936213 0.01395940   \n",
      "Equity(25 [ALB])   0.03717746 0.04371026 0.02669236 0.03006313 0.01142295   \n",
      "Equity(26 [ALGN])  0.03621817 0.05155347 0.02561730 0.02945000 0.01490689   \n",
      "Equity(27 [ALK])   0.03165015 0.09971232 0.02856603 0.02288315 0.01440410   \n",
      "Equity(28 [ALL])   0.02476488 0.03282919 0.01851264 0.01714354 0.00919650   \n",
      "Equity(29 [ALLE])  0.00777121 0.01301521 0.00800441 0.00746966 0.00750941   \n",
      "...                       ...        ...        ...        ...        ...   \n",
      "Equity(460 [VRSN]) 0.02394738 0.03009677 0.01955553 0.02035505 0.01019052   \n",
      "Equity(461 [VRTX]) 0.02732827 0.05093319 0.02633804 0.02536789 0.02055976   \n",
      "Equity(462 [VTR])  0.01981929 0.02616007 0.01618530 0.01266122 0.00792984   \n",
      "Equity(463 [VZ])   0.04292803 0.05450733 0.03108896 0.03188319 0.01513874   \n",
      "Equity(464 [WAT])  0.03039413 0.03814501 0.02313617 0.02269656 0.01335013   \n",
      "Equity(465 [WBA])  0.02008381 0.02786691 0.01814111 0.01480840 0.01321232   \n",
      "Equity(466 [WDC])  0.03109041 0.04281954 0.02748059 0.02589648 0.01304460   \n",
      "Equity(467 [WEC])  0.01484992 0.01879462 0.01060777 0.00817669 0.00819526   \n",
      "Equity(468 [WFC])  0.03152590 0.04230212 0.02331263 0.02227508 0.01073315   \n",
      "Equity(469 [WHR])  0.03473941 0.05407238 0.03053064 0.02631010 0.01341595   \n",
      "Equity(471 [WM])   0.02064109 0.02233404 0.01632858 0.01347580 0.00811700   \n",
      "Equity(472 [WMB])  0.03002116 0.03757344 0.02331929 0.02608310 0.01402682   \n",
      "Equity(473 [WMT])  0.01369342 0.01849223 0.01250780 0.00893395 0.00739085   \n",
      "Equity(474 [WRK])  0.00313055 0.00356023 0.00326470 0.00416421 0.00365762   \n",
      "Equity(475 [WU])   0.02496082 0.03184185 0.01800090 0.01971790 0.01123164   \n",
      "Equity(476 [WY])   0.02981575 0.03760882 0.02237004 0.02193527 0.01082129   \n",
      "Equity(477 [WYN])  0.03374571 0.05186827 0.02827764 0.02681009 0.01285043   \n",
      "Equity(478 [WYNN]) 0.03449180 0.04291409 0.03135356 0.03608314 0.01738991   \n",
      "Equity(479 [XEC])  0.03275187 0.02374549 0.02467266 0.02667503 0.01418006   \n",
      "Equity(480 [XEL])  0.01456923 0.01660916 0.01014361 0.00797650 0.00794337   \n",
      "Equity(481 [XL])   0.02809279 0.03803191 0.02052438 0.01970579 0.00868681   \n",
      "Equity(482 [XLNX]) 0.02518404 0.02926026 0.01978565 0.02463591 0.01192652   \n",
      "Equity(483 [XOM])  0.02282007 0.01525271 0.01637755 0.01722997 0.01025799   \n",
      "Equity(484 [XRAY]) 0.02813930 0.03541539 0.02081588 0.02053889 0.01112550   \n",
      "Equity(485 [XRX])  0.03377091 0.03827874 0.02545671 0.02589648 0.01364033   \n",
      "Equity(486 [XYL])  0.01741113 0.02015302 0.01520048 0.01551982 0.01116919   \n",
      "Equity(487 [YUM])  0.02239052 0.03231988 0.02081631 0.01856069 0.01179212   \n",
      "Equity(488 [ZBH])  0.02450039 0.02984256 0.01912602 0.01685395 0.01350407   \n",
      "Equity(489 [ZION]) 0.03622272 0.05112850 0.02744038 0.02679842 0.01166132   \n",
      "Equity(490 [ZTS])  0.00812414 0.01307798 0.00900349 0.00809141 0.01056903   \n",
      "\n",
      "                            5          6          7          8          9  \\\n",
      "Equity(0 [A])      0.01853623 0.01968997 0.02770110 0.02913070 0.02826291   \n",
      "Equity(1 [AAL])    0.02607857 0.02195395 0.02910174 0.03895269 0.03329288   \n",
      "Equity(2 [AAP])    0.01473939 0.01625485 0.01998703 0.02247223 0.02257002   \n",
      "Equity(3 [AAPL])   0.01334228 0.01292377 0.02100105 0.02326555 0.02803904   \n",
      "Equity(4 [ABBV])   0.00993055 0.01275821 0.01105744 0.01243912 0.01394229   \n",
      "Equity(5 [ABC])    0.03377477 0.01462872 0.01835877 0.02070832 0.01883238   \n",
      "Equity(6 [ABT])    0.01462872 0.03263296 0.01897348 0.01964342 0.01849824   \n",
      "Equity(7 [ACN])    0.01835877 0.01897348 0.05106761 0.03111183 0.03062939   \n",
      "Equity(8 [ADBE])   0.02070832 0.01964342 0.03111183 0.07049317 0.03431310   \n",
      "Equity(9 [ADI])    0.01883238 0.01849824 0.03062939 0.03431310 0.06269616   \n",
      "Equity(10 [ADM])   0.01797064 0.01958727 0.02715854 0.02769362 0.02805408   \n",
      "Equity(11 [ADP])   0.01643458 0.01794506 0.02380005 0.02566959 0.02570443   \n",
      "Equity(12 [ADS])   0.01721899 0.01794526 0.02578518 0.02885414 0.02751779   \n",
      "Equity(13 [ADSK])  0.02481982 0.02151304 0.03926959 0.04531139 0.04444311   \n",
      "Equity(14 [AEE])   0.01249521 0.01432738 0.01683394 0.01721517 0.01453791   \n",
      "Equity(15 [AEP])   0.01071854 0.01259411 0.01420500 0.01432505 0.01299660   \n",
      "Equity(16 [AES])   0.01847991 0.01966752 0.02796163 0.02849273 0.02816996   \n",
      "Equity(17 [AET])   0.02104081 0.02015177 0.02447173 0.02674116 0.02573232   \n",
      "Equity(18 [AFL])   0.02121641 0.02197388 0.03284791 0.03462981 0.03317687   \n",
      "Equity(19 [AGN])   0.01871442 0.01962561 0.02137114 0.02483909 0.02235016   \n",
      "Equity(20 [AIG])   0.02335569 0.02393279 0.03588717 0.03894232 0.03661202   \n",
      "Equity(21 [AIV])   0.01779440 0.01682383 0.02232119 0.02566006 0.02356380   \n",
      "Equity(22 [AIZ])   0.01726710 0.01827886 0.02505764 0.02664940 0.02576237   \n",
      "Equity(23 [AJG])   0.01437520 0.01514342 0.02049886 0.02210277 0.02066203   \n",
      "Equity(24 [AKAM])  0.02267938 0.02066191 0.03514125 0.03959804 0.04211133   \n",
      "Equity(25 [ALB])   0.02245035 0.02174459 0.03660322 0.03815426 0.04122510   \n",
      "Equity(26 [ALGN])  0.02585773 0.02260403 0.03605198 0.04114709 0.03874968   \n",
      "Equity(27 [ALK])   0.02273997 0.02061552 0.02752925 0.03429650 0.03134185   \n",
      "Equity(28 [ALL])   0.01605011 0.01752537 0.02396195 0.02503189 0.02378998   \n",
      "Equity(29 [ALLE])  0.00528070 0.00746306 0.00807320 0.00902016 0.01037857   \n",
      "...                       ...        ...        ...        ...        ...   \n",
      "Equity(460 [VRSN]) 0.01715407 0.01583346 0.02519824 0.02799472 0.02812012   \n",
      "Equity(461 [VRTX]) 0.02602574 0.02392357 0.01701865 0.03023688 0.03817127   \n",
      "Equity(462 [VTR])  0.01556191 0.01522889 0.01856993 0.02093291 0.01700884   \n",
      "Equity(463 [VZ])   0.02794757 0.02811640 0.04314242 0.04658084 0.04543079   \n",
      "Equity(464 [WAT])  0.02169691 0.02142684 0.03060641 0.03335317 0.03235474   \n",
      "Equity(465 [WBA])  0.01474166 0.01671520 0.01987519 0.02161180 0.02173588   \n",
      "Equity(466 [WDC])  0.02068381 0.01717177 0.03166209 0.03619714 0.04137122   \n",
      "Equity(467 [WEC])  0.01112276 0.01292373 0.01436842 0.01504819 0.01261320   \n",
      "Equity(468 [WFC])  0.01971877 0.02133234 0.03054620 0.03226282 0.03087055   \n",
      "Equity(469 [WHR])  0.02134790 0.02244206 0.03308554 0.03611455 0.03544940   \n",
      "Equity(471 [WM])   0.01403249 0.01458283 0.01986210 0.02091674 0.01982424   \n",
      "Equity(472 [WMB])  0.01974746 0.02070721 0.03164723 0.03206010 0.03233134   \n",
      "Equity(473 [WMT])  0.00993167 0.01170213 0.01241646 0.01272292 0.01203003   \n",
      "Equity(474 [WRK])  0.00197398 0.00302272 0.00310222 0.00289710 0.00485239   \n",
      "Equity(475 [WU])   0.01729421 0.01755389 0.02613206 0.02854557 0.02923078   \n",
      "Equity(476 [WY])   0.02008274 0.02002250 0.02885399 0.03119893 0.03006951   \n",
      "Equity(477 [WYN])  0.02326944 0.02222684 0.03385226 0.03761148 0.03466519   \n",
      "Equity(478 [WYNN]) 0.02305666 0.02279081 0.03674731 0.03976847 0.03940037   \n",
      "Equity(479 [XEC])  0.01993738 0.02097807 0.03622648 0.03740631 0.04043377   \n",
      "Equity(480 [XEL])  0.01063457 0.01261662 0.01415692 0.01441512 0.01215838   \n",
      "Equity(481 [XL])   0.01850415 0.01839861 0.02747386 0.02928758 0.02794836   \n",
      "Equity(482 [XLNX]) 0.01682647 0.01588586 0.02778928 0.03163069 0.03917971   \n",
      "Equity(483 [XOM])  0.01413937 0.01640954 0.02326788 0.02258140 0.02472533   \n",
      "Equity(484 [XRAY]) 0.01931614 0.01908342 0.02821439 0.03060310 0.02984093   \n",
      "Equity(485 [XRX])  0.02208549 0.02237916 0.03431793 0.03666687 0.03860253   \n",
      "Equity(486 [XYL])  0.00964582 0.01285574 0.01799344 0.01881684 0.02252777   \n",
      "Equity(487 [YUM])  0.01619609 0.01694111 0.02248986 0.02484698 0.02317771   \n",
      "Equity(488 [ZBH])  0.01789721 0.01902958 0.02389069 0.02535793 0.02472913   \n",
      "Equity(489 [ZION]) 0.02164752 0.02290117 0.03533950 0.03773388 0.03676747   \n",
      "Equity(490 [ZTS])  0.00776230 0.00937799 0.00849644 0.00963935 0.01121485   \n",
      "\n",
      "                          ...                481        482        483  \\\n",
      "Equity(0 [A])             ...         0.02518404 0.02282007 0.02813930   \n",
      "Equity(1 [AAL])           ...         0.02926026 0.01525271 0.03541539   \n",
      "Equity(2 [AAP])           ...         0.01978565 0.01637755 0.02081588   \n",
      "Equity(3 [AAPL])          ...         0.02463591 0.01722997 0.02053889   \n",
      "Equity(4 [ABBV])          ...         0.01192652 0.01025799 0.01112550   \n",
      "Equity(5 [ABC])           ...         0.01682647 0.01413937 0.01931614   \n",
      "Equity(6 [ABT])           ...         0.01588586 0.01640954 0.01908342   \n",
      "Equity(7 [ACN])           ...         0.02778928 0.02326788 0.02821439   \n",
      "Equity(8 [ADBE])          ...         0.03163069 0.02258140 0.03060310   \n",
      "Equity(9 [ADI])           ...         0.03917971 0.02472533 0.02984093   \n",
      "Equity(10 [ADM])          ...         0.02473522 0.02580512 0.02717314   \n",
      "Equity(11 [ADP])          ...         0.02284525 0.01933407 0.02385996   \n",
      "Equity(12 [ADS])          ...         0.02484257 0.02076990 0.02519741   \n",
      "Equity(13 [ADSK])         ...         0.04141533 0.02787320 0.03879748   \n",
      "Equity(14 [AEE])          ...         0.01311320 0.01604634 0.01677458   \n",
      "Equity(15 [AEP])          ...         0.01162111 0.01427755 0.01403070   \n",
      "Equity(16 [AES])          ...         0.02515770 0.02744309 0.02749065   \n",
      "Equity(17 [AET])          ...         0.02281098 0.02078813 0.02781865   \n",
      "Equity(18 [AFL])          ...         0.02928733 0.02874749 0.03425816   \n",
      "Equity(19 [AGN])          ...         0.01981573 0.01676044 0.02237988   \n",
      "Equity(20 [AIG])          ...         0.03241935 0.03122984 0.03695667   \n",
      "Equity(21 [AIV])          ...         0.02030978 0.02017447 0.02505835   \n",
      "Equity(22 [AIZ])          ...         0.02264629 0.02241753 0.02623610   \n",
      "Equity(23 [AJG])          ...         0.01820060 0.01755778 0.02122889   \n",
      "Equity(24 [AKAM])         ...         0.03855328 0.02734898 0.03398605   \n",
      "Equity(25 [ALB])          ...         0.03673388 0.03299146 0.03691716   \n",
      "Equity(26 [ALGN])         ...         0.03498479 0.02827580 0.03903958   \n",
      "Equity(27 [ALK])          ...         0.02813760 0.01744399 0.03130370   \n",
      "Equity(28 [ALL])          ...         0.02074197 0.02156492 0.02500697   \n",
      "Equity(29 [ALLE])         ...         0.00896639 0.00638430 0.00734013   \n",
      "...                       ...                ...        ...        ...   \n",
      "Equity(460 [VRSN])        ...         0.02558064 0.01879030 0.02510251   \n",
      "Equity(461 [VRTX])        ...         0.03371574 0.02135063 0.03169512   \n",
      "Equity(462 [VTR])         ...         0.01464933 0.01703130 0.02020641   \n",
      "Equity(463 [VZ])          ...         0.04053932 0.03745296 0.04425517   \n",
      "Equity(464 [WAT])         ...         0.02881850 0.02415875 0.03165975   \n",
      "Equity(465 [WBA])         ...         0.01945055 0.01603827 0.02017039   \n",
      "Equity(466 [WDC])         ...         0.03904629 0.02727324 0.03033097   \n",
      "Equity(467 [WEC])         ...         0.01143099 0.01397741 0.01430154   \n",
      "Equity(468 [WFC])         ...         0.02690694 0.02730854 0.03211279   \n",
      "Equity(469 [WHR])         ...         0.03146444 0.02687179 0.03361295   \n",
      "Equity(471 [WM])          ...         0.01784184 0.01715522 0.02057478   \n",
      "Equity(472 [WMB])         ...         0.02870267 0.03506159 0.03007177   \n",
      "Equity(473 [WMT])         ...         0.01018425 0.01064039 0.01283686   \n",
      "Equity(474 [WRK])         ...         0.00397099 0.00381366 0.00287550   \n",
      "Equity(475 [WU])          ...         0.02626216 0.02148453 0.02613028   \n",
      "Equity(476 [WY])          ...         0.02625076 0.02526237 0.03039184   \n",
      "Equity(477 [WYN])         ...         0.03143400 0.02655215 0.03471674   \n",
      "Equity(478 [WYNN])        ...         0.03566087 0.03167706 0.03795148   \n",
      "Equity(479 [XEC])         ...         0.03687654 0.04328933 0.03523070   \n",
      "Equity(480 [XEL])         ...         0.01102978 0.01391470 0.01398284   \n",
      "Equity(481 [XL])          ...         0.04523966 0.02365869 0.02901602   \n",
      "Equity(482 [XLNX])        ...         0.03567163 0.04853534 0.02689673   \n",
      "Equity(483 [XOM])         ...         0.02171510 0.02555909 0.03306754   \n",
      "Equity(484 [XRAY])        ...         0.02689673 0.02247158 0.02941526   \n",
      "Equity(485 [XRX])         ...         0.03468285 0.02954473 0.03452803   \n",
      "Equity(486 [XYL])         ...         0.01980763 0.01658255 0.01669614   \n",
      "Equity(487 [YUM])         ...         0.02065263 0.01785326 0.02288446   \n",
      "Equity(488 [ZBH])         ...         0.02166693 0.02055505 0.02547248   \n",
      "Equity(489 [ZION])        ...         0.03221008 0.03225822 0.03762877   \n",
      "Equity(490 [ZTS])         ...         0.00956383 0.00718524 0.00867959   \n",
      "\n",
      "                          484        485        486        487        488  \\\n",
      "Equity(0 [A])      0.03377091 0.01741113 0.02239052 0.02450039 0.03622272   \n",
      "Equity(1 [AAL])    0.03827874 0.02015302 0.03231988 0.02984256 0.05112850   \n",
      "Equity(2 [AAP])    0.02545671 0.01520048 0.02081631 0.01912602 0.02744038   \n",
      "Equity(3 [AAPL])   0.02589648 0.01551982 0.01856069 0.01685395 0.02679842   \n",
      "Equity(4 [ABBV])   0.01364033 0.01116919 0.01179212 0.01350407 0.01166132   \n",
      "Equity(5 [ABC])    0.02208549 0.00964582 0.01619609 0.01789721 0.02164752   \n",
      "Equity(6 [ABT])    0.02237916 0.01285574 0.01694111 0.01902958 0.02290117   \n",
      "Equity(7 [ACN])    0.03431793 0.01799344 0.02248986 0.02389069 0.03533950   \n",
      "Equity(8 [ADBE])   0.03666687 0.01881684 0.02484698 0.02535793 0.03773388   \n",
      "Equity(9 [ADI])    0.03860253 0.02252777 0.02317771 0.02472913 0.03676747   \n",
      "Equity(10 [ADM])   0.03417089 0.01703035 0.02221974 0.02409478 0.03762383   \n",
      "Equity(11 [ADP])   0.02873967 0.01508361 0.01985860 0.02110518 0.03017464   \n",
      "Equity(12 [ADS])   0.03099132 0.01748776 0.02250322 0.02165115 0.03365235   \n",
      "Equity(13 [ADSK])  0.04714369 0.02275847 0.03030243 0.03067301 0.04867705   \n",
      "Equity(14 [AEE])   0.01924867 0.00787113 0.01429028 0.01535262 0.01701285   \n",
      "Equity(15 [AEP])   0.01639611 0.00707051 0.01228831 0.01323890 0.01307682   \n",
      "Equity(16 [AES])   0.03454594 0.01649784 0.02266247 0.02442819 0.03582441   \n",
      "Equity(17 [AET])   0.03222802 0.01391998 0.02302211 0.02728795 0.03412607   \n",
      "Equity(18 [AFL])   0.04177923 0.01925866 0.02594238 0.02961619 0.05243388   \n",
      "Equity(19 [AGN])   0.02471456 0.01497894 0.02178902 0.02260459 0.02510870   \n",
      "Equity(20 [AIG])   0.04629716 0.02185082 0.02919531 0.03192804 0.05921036   \n",
      "Equity(21 [AIV])   0.02832677 0.01129429 0.02036967 0.02282368 0.03241960   \n",
      "Equity(22 [AIZ])   0.03288943 0.01444992 0.02080157 0.02316136 0.04108652   \n",
      "Equity(23 [AJG])   0.02567362 0.01232615 0.01736257 0.01898338 0.03023082   \n",
      "Equity(24 [AKAM])  0.04421833 0.02186922 0.02864433 0.02832266 0.04593250   \n",
      "Equity(25 [ALB])   0.04649969 0.02487465 0.02868580 0.03061230 0.04939418   \n",
      "Equity(26 [ALGN])  0.04416619 0.02255690 0.02934461 0.03442954 0.05136092   \n",
      "Equity(27 [ALK])   0.03501714 0.01721822 0.02718923 0.02674996 0.03999674   \n",
      "Equity(28 [ALL])   0.03084889 0.01385034 0.02002232 0.02189744 0.03893713   \n",
      "Equity(29 [ALLE])  0.00926972 0.00837483 0.00744216 0.00751981 0.00953764   \n",
      "...                       ...        ...        ...        ...        ...   \n",
      "Equity(460 [VRSN]) 0.03026482 0.01524640 0.02075536 0.02132280 0.03182190   \n",
      "Equity(461 [VRTX]) 0.03090007 0.01600010 0.02659282 0.02903881 0.03910711   \n",
      "Equity(462 [VTR])  0.02206409 0.00807864 0.01679804 0.01903576 0.02192950   \n",
      "Equity(463 [VZ])   0.05522932 0.02599462 0.03465100 0.03771392 0.06674175   \n",
      "Equity(464 [WAT])  0.03607043 0.01894613 0.02495741 0.02871622 0.03965043   \n",
      "Equity(465 [WBA])  0.02376538 0.01391299 0.01803610 0.01916117 0.02246281   \n",
      "Equity(466 [WDC])  0.04462770 0.01956546 0.02508624 0.02414989 0.04278414   \n",
      "Equity(467 [WEC])  0.01640138 0.00687079 0.01256847 0.01341352 0.01308406   \n",
      "Equity(468 [WFC])  0.04004316 0.01839653 0.02519051 0.02789805 0.05441680   \n",
      "Equity(469 [WHR])  0.04008128 0.02291341 0.02917677 0.02902699 0.04405274   \n",
      "Equity(471 [WM])   0.02492427 0.01108272 0.01666375 0.01800819 0.02568242   \n",
      "Equity(472 [WMB])  0.03899387 0.02298074 0.02702430 0.02723638 0.04376679   \n",
      "Equity(473 [WMT])  0.01566634 0.00704391 0.01218508 0.01207854 0.01556442   \n",
      "Equity(474 [WRK])  0.00454564 0.00395744 0.00325057 0.00326728 0.00479729   \n",
      "Equity(475 [WU])   0.03232566 0.01646520 0.02060102 0.02246174 0.03495023   \n",
      "Equity(476 [WY])   0.03589674 0.01722670 0.02408108 0.02710170 0.03982663   \n",
      "Equity(477 [WYN])  0.04119616 0.01985617 0.03007977 0.02903333 0.04509811   \n",
      "Equity(478 [WYNN]) 0.04565549 0.02673174 0.03478676 0.03257055 0.05016620   \n",
      "Equity(479 [XEC])  0.04671726 0.02879568 0.02672698 0.03180245 0.05587151   \n",
      "Equity(480 [XEL])  0.01617213 0.00693686 0.01222822 0.01310179 0.01289254   \n",
      "Equity(481 [XL])   0.03479735 0.01503702 0.02232392 0.02489105 0.04250811   \n",
      "Equity(482 [XLNX]) 0.03468285 0.01980763 0.02065263 0.02166693 0.03221008   \n",
      "Equity(483 [XOM])  0.02954473 0.01658255 0.01785326 0.02055505 0.03225822   \n",
      "Equity(484 [XRAY]) 0.04990093 0.01669614 0.02288446 0.02547248 0.03762877   \n",
      "Equity(485 [XRX])  0.04482095 0.06113277 0.02723966 0.02931780 0.04823110   \n",
      "Equity(486 [XYL])  0.02168385 0.01792288 0.04631061 0.01572563 0.02304388   \n",
      "Equity(487 [YUM])  0.02723966 0.01453003 0.02134393 0.06415041 0.02905641   \n",
      "Equity(488 [ZBH])  0.02931780 0.01572563 0.02032164 0.02493265 0.05465453   \n",
      "Equity(489 [ZION]) 0.04823110 0.02304388 0.02905641 0.03231528 0.06999539   \n",
      "Equity(490 [ZTS])  0.01049221 0.00800621 0.00897832 0.01028335 0.00950065   \n",
      "\n",
      "                          489  Equity(490 [ZTS])  \n",
      "Equity(0 [A])      0.00812414                nan  \n",
      "Equity(1 [AAL])    0.01307798                nan  \n",
      "Equity(2 [AAP])    0.00900349                nan  \n",
      "Equity(3 [AAPL])   0.00809141                nan  \n",
      "Equity(4 [ABBV])   0.01056903                nan  \n",
      "Equity(5 [ABC])    0.00776230                nan  \n",
      "Equity(6 [ABT])    0.00937799                nan  \n",
      "Equity(7 [ACN])    0.00849644                nan  \n",
      "Equity(8 [ADBE])   0.00963935                nan  \n",
      "Equity(9 [ADI])    0.01121485                nan  \n",
      "Equity(10 [ADM])   0.00837003                nan  \n",
      "Equity(11 [ADP])   0.00854866                nan  \n",
      "Equity(12 [ADS])   0.00915377                nan  \n",
      "Equity(13 [ADSK])  0.00979781                nan  \n",
      "Equity(14 [AEE])   0.00485032                nan  \n",
      "Equity(15 [AEP])   0.00458565                nan  \n",
      "Equity(16 [AES])   0.00841833                nan  \n",
      "Equity(17 [AET])   0.01213250                nan  \n",
      "Equity(18 [AFL])   0.00839223                nan  \n",
      "Equity(19 [AGN])   0.01343043                nan  \n",
      "Equity(20 [AIG])   0.01002249                nan  \n",
      "Equity(21 [AIV])   0.00544597                nan  \n",
      "Equity(22 [AIZ])   0.00757482                nan  \n",
      "Equity(23 [AJG])   0.00631020                nan  \n",
      "Equity(24 [AKAM])  0.01165206                nan  \n",
      "Equity(25 [ALB])   0.00849979                nan  \n",
      "Equity(26 [ALGN])  0.01132697                nan  \n",
      "Equity(27 [ALK])   0.01128249                nan  \n",
      "Equity(28 [ALL])   0.00676287                nan  \n",
      "Equity(29 [ALLE])  0.00550580                nan  \n",
      "...                       ...                ...  \n",
      "Equity(460 [VRSN]) 0.00850812                nan  \n",
      "Equity(461 [VRTX]) 0.01662974                nan  \n",
      "Equity(462 [VTR])  0.00424298                nan  \n",
      "Equity(463 [VZ])   0.01155193                nan  \n",
      "Equity(464 [WAT])  0.01040069                nan  \n",
      "Equity(465 [WBA])  0.00955910                nan  \n",
      "Equity(466 [WDC])  0.00952168                nan  \n",
      "Equity(467 [WEC])  0.00449869                nan  \n",
      "Equity(468 [WFC])  0.00819185                nan  \n",
      "Equity(469 [WHR])  0.00968669                nan  \n",
      "Equity(471 [WM])   0.00555657                nan  \n",
      "Equity(472 [WMB])  0.01061896                nan  \n",
      "Equity(473 [WMT])  0.00514111                nan  \n",
      "Equity(474 [WRK])  0.00270985                nan  \n",
      "Equity(475 [WU])   0.00915349                nan  \n",
      "Equity(476 [WY])   0.00775024                nan  \n",
      "Equity(477 [WYN])  0.01005000                nan  \n",
      "Equity(478 [WYNN]) 0.01443749                nan  \n",
      "Equity(479 [XEC])  0.01103886                nan  \n",
      "Equity(480 [XEL])  0.00445055                nan  \n",
      "Equity(481 [XL])   0.00669927                nan  \n",
      "Equity(482 [XLNX]) 0.00956383                nan  \n",
      "Equity(483 [XOM])  0.00718524                nan  \n",
      "Equity(484 [XRAY]) 0.00867959                nan  \n",
      "Equity(485 [XRX])  0.01049221                nan  \n",
      "Equity(486 [XYL])  0.00800621                nan  \n",
      "Equity(487 [YUM])  0.00897832                nan  \n",
      "Equity(488 [ZBH])  0.01028335                nan  \n",
      "Equity(489 [ZION]) 0.03286560                nan  \n",
      "Equity(490 [ZTS])  0.00846826                nan  \n",
      "\n",
      "[490 rows x 491 columns]\n"
     ]
    },
    {
     "ename": "ValueError",
     "evalue": "matrices are not aligned",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-24-5ca05a70d7ae>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      5\u001b[0m     \u001b[0mrisk_model\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'factor_cov_matrix'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0mrisk_model\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'idiosyncratic_var_matrix'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m     all_weights)\n\u001b[0m",
      "\u001b[0;32m<ipython-input-23-1ea65c7123b0>\u001b[0m in \u001b[0;36mpredict_portfolio_risk\u001b[0;34m(factor_betas, factor_cov_matrix, idiosyncratic_var_matrix, weights)\u001b[0m\n\u001b[1;32m     33\u001b[0m     \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfactor_betas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfactor_cov_matrix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfactor_betas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0midiosyncratic_var_matrix\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     34\u001b[0m     \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 35\u001b[0;31m     \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mweights\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweights\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     36\u001b[0m     \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m     \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mdot\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m    744\u001b[0m             if (len(common) > len(self.columns) or\n\u001b[1;32m    745\u001b[0m                     len(common) > len(other.index)):\n\u001b[0;32m--> 746\u001b[0;31m                 \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'matrices are not aligned'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    748\u001b[0m             \u001b[0mleft\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcommon\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: matrices are not aligned"
     ]
    }
   ],
   "source": [
    "all_weights = pd.DataFrame(np.repeat(1/len(universe_tickers), len(universe_tickers)), universe_tickers)\n",
    "\n",
    "predict_portfolio_risk(\n",
    "    risk_model['factor_betas'],\n",
    "    risk_model['factor_cov_matrix'],\n",
    "    risk_model['idiosyncratic_var_matrix'],\n",
    "    all_weights)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Create Alpha Factors\n",
    "With the profile risk calculated, it's time to start working on the alpha factors. In this project, we'll create the following factors:\n",
    "- Momentum 1 Year Factor\n",
    "- Mean Reversion 5 Day Sector Neutral Factor\n",
    "- Mean Reversion 5 Day Sector Neutral Smoothed Factor\n",
    "- Overnight Sentiment Factor\n",
    "- Overnight Sentiment Smoothed Factor\n",
    "\n",
    "## Momentum 1 Year Factor\n",
    "Each factor will have a hypothesis that goes with it. For this factor, it is \"Higher past 12-month (252 days) returns are proportional to future return.\" Using that hypothesis, we've generated this code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "from zipline.pipeline.factors import Returns\n",
    "\n",
    "def momentum_1yr(window_length, universe, sector):\n",
    "    return Returns(window_length=window_length, mask=universe) \\\n",
    "        .demean(groupby=sector) \\\n",
    "        .rank() \\\n",
    "        .zscore()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mean Reversion 5 Day Sector Neutral Factor\n",
    "Now it's time for you to implement `mean_reversion_5day_sector_neutral` using the hypothesis \"Short-term outperformers(underperformers) compared to their sector will revert.\" Use the returns data from `universe`, demean using the sector data to partition, rank, then converted to a zscore."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running Integration Test on pipeline:\n",
      "> start_dat = pd.Timestamp('2015-01-05', tz='utc')\n",
      "> end_date = pd.Timestamp('2015-01-07', tz='utc')\n",
      "> universe = AverageDollarVolume(window_length=2).top(4)\n",
      "> factor = mean_reversion_5day_sector_neutral(\n",
      "    window_length=3,\n",
      "    universe=universe,\n",
      "    sector=project_helper.Sector())\n",
      "> pipeline.add(factor, 'Mean_Reversion_5Day_Sector_Neutral')\n",
      "> engine.run_pipeline(pipeline, start_dat, end_date)\n",
      "\n",
      "NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=3), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)})\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def mean_reversion_5day_sector_neutral(window_length, universe, sector):\n",
    "    \"\"\"\n",
    "    Generate the mean reversion 5 day sector neutral factor\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    window_length : int\n",
    "        Returns window length\n",
    "    universe : Zipline Filter\n",
    "        Universe of stocks filter\n",
    "    sector : Zipline Classifier\n",
    "        Sector classifier\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    factor : Zipline Factor\n",
    "        Mean reversion 5 day sector neutral factor\n",
    "    \"\"\"\n",
    "#     print(window_length)\n",
    "#     print(universe)\n",
    "#     print(sector)\n",
    "    r = -momentum_1yr(window_length, universe, sector)\n",
    "    print(r)\n",
    "    #can also be done with: \n",
    "#   r = -Returns(window_length=window_length, mask=universe).demean(groupby=sector).rank().zscore()\n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_mean_reversion_5day_sector_neutral(mean_reversion_5day_sector_neutral)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's see what some of the factor data looks like. For calculating factors, we'll be looking back 2 years.\n",
    "\n",
    "**Note:** _Going back 2 years falls on a day when the market is closed. Pipeline package doesn't handle start or end dates that don't fall on days when the market is open. To fix this, we went back 2 extra days to fall on the next day when the market is open._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=5), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Mean_Reversion_5Day_Sector_Neutral</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"30\" valign=\"top\">2014-01-03 00:00:00+00:00</th>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>0.85326482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>1.62630815</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>0.64906469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>1.40752230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>1.45857233</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <td>0.14585723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <td>-0.30630019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <td>0.88243626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <td>-0.06563576</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <td>1.67006532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(10 [ADM])</th>\n",
       "      <td>1.18144359</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(11 [ADP])</th>\n",
       "      <td>0.24066444</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(12 [ADS])</th>\n",
       "      <td>-1.69194391</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(13 [ADSK])</th>\n",
       "      <td>-0.35735022</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(14 [AEE])</th>\n",
       "      <td>0.34276450</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(15 [AEP])</th>\n",
       "      <td>-0.45215742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(16 [AES])</th>\n",
       "      <td>0.50320746</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(17 [AET])</th>\n",
       "      <td>0.79492192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(18 [AFL])</th>\n",
       "      <td>1.15227214</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(19 [AGN])</th>\n",
       "      <td>-1.48045092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(20 [AIG])</th>\n",
       "      <td>-0.27712874</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(21 [AIV])</th>\n",
       "      <td>-0.37922881</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(22 [AIZ])</th>\n",
       "      <td>0.91890057</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(23 [AJG])</th>\n",
       "      <td>-0.82409337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(24 [AKAM])</th>\n",
       "      <td>1.22520076</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(25 [ALB])</th>\n",
       "      <td>0.69282186</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(26 [ALGN])</th>\n",
       "      <td>1.08663639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(27 [ALK])</th>\n",
       "      <td>-1.30542224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(28 [ALL])</th>\n",
       "      <td>-0.48862173</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(29 [ALLE])</th>\n",
       "      <td>1.42940089</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"30\" valign=\"top\">2016-01-05 00:00:00+00:00</th>\n",
       "      <th>Equity(460 [VRSN])</th>\n",
       "      <td>1.48614551</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(461 [VRTX])</th>\n",
       "      <td>-1.15826688</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(462 [VTR])</th>\n",
       "      <td>-1.55742347</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(463 [VZ])</th>\n",
       "      <td>-1.42912314</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(464 [WAT])</th>\n",
       "      <td>0.47399845</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(465 [WBA])</th>\n",
       "      <td>1.21528925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(466 [WDC])</th>\n",
       "      <td>-1.59306245</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(467 [WEC])</th>\n",
       "      <td>-0.13899203</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(468 [WFC])</th>\n",
       "      <td>0.35995371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(469 [WHR])</th>\n",
       "      <td>-1.15113908</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(471 [WM])</th>\n",
       "      <td>0.38133710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(472 [WMB])</th>\n",
       "      <td>-1.69285160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(473 [WMT])</th>\n",
       "      <td>-1.52891228</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(474 [WRK])</th>\n",
       "      <td>-1.32220619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(475 [WU])</th>\n",
       "      <td>0.54527641</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(476 [WY])</th>\n",
       "      <td>0.08196966</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(477 [WYN])</th>\n",
       "      <td>1.19390586</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(478 [WYNN])</th>\n",
       "      <td>-1.49327330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(479 [XEC])</th>\n",
       "      <td>0.30293134</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(480 [XEL])</th>\n",
       "      <td>0.02494729</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <td>1.06560553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <td>1.34358958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <td>1.60019024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <td>1.22241705</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <td>0.33144252</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <td>-0.13186423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <td>0.18175880</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <td>-1.40061195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <td>0.52389302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "      <td>-0.93730520</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>244259 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              Mean_Reversion_5Day_Sector_Neutral\n",
       "2014-01-03 00:00:00+00:00 Equity(0 [A])                               0.85326482\n",
       "                          Equity(1 [AAL])                             1.62630815\n",
       "                          Equity(2 [AAP])                             0.64906469\n",
       "                          Equity(3 [AAPL])                            1.40752230\n",
       "                          Equity(4 [ABBV])                            1.45857233\n",
       "                          Equity(5 [ABC])                             0.14585723\n",
       "                          Equity(6 [ABT])                            -0.30630019\n",
       "                          Equity(7 [ACN])                             0.88243626\n",
       "                          Equity(8 [ADBE])                           -0.06563576\n",
       "                          Equity(9 [ADI])                             1.67006532\n",
       "                          Equity(10 [ADM])                            1.18144359\n",
       "                          Equity(11 [ADP])                            0.24066444\n",
       "                          Equity(12 [ADS])                           -1.69194391\n",
       "                          Equity(13 [ADSK])                          -0.35735022\n",
       "                          Equity(14 [AEE])                            0.34276450\n",
       "                          Equity(15 [AEP])                           -0.45215742\n",
       "                          Equity(16 [AES])                            0.50320746\n",
       "                          Equity(17 [AET])                            0.79492192\n",
       "                          Equity(18 [AFL])                            1.15227214\n",
       "                          Equity(19 [AGN])                           -1.48045092\n",
       "                          Equity(20 [AIG])                           -0.27712874\n",
       "                          Equity(21 [AIV])                           -0.37922881\n",
       "                          Equity(22 [AIZ])                            0.91890057\n",
       "                          Equity(23 [AJG])                           -0.82409337\n",
       "                          Equity(24 [AKAM])                           1.22520076\n",
       "                          Equity(25 [ALB])                            0.69282186\n",
       "                          Equity(26 [ALGN])                           1.08663639\n",
       "                          Equity(27 [ALK])                           -1.30542224\n",
       "                          Equity(28 [ALL])                           -0.48862173\n",
       "                          Equity(29 [ALLE])                           1.42940089\n",
       "...                                                                          ...\n",
       "2016-01-05 00:00:00+00:00 Equity(460 [VRSN])                          1.48614551\n",
       "                          Equity(461 [VRTX])                         -1.15826688\n",
       "                          Equity(462 [VTR])                          -1.55742347\n",
       "                          Equity(463 [VZ])                           -1.42912314\n",
       "                          Equity(464 [WAT])                           0.47399845\n",
       "                          Equity(465 [WBA])                           1.21528925\n",
       "                          Equity(466 [WDC])                          -1.59306245\n",
       "                          Equity(467 [WEC])                          -0.13899203\n",
       "                          Equity(468 [WFC])                           0.35995371\n",
       "                          Equity(469 [WHR])                          -1.15113908\n",
       "                          Equity(471 [WM])                            0.38133710\n",
       "                          Equity(472 [WMB])                          -1.69285160\n",
       "                          Equity(473 [WMT])                          -1.52891228\n",
       "                          Equity(474 [WRK])                          -1.32220619\n",
       "                          Equity(475 [WU])                            0.54527641\n",
       "                          Equity(476 [WY])                            0.08196966\n",
       "                          Equity(477 [WYN])                           1.19390586\n",
       "                          Equity(478 [WYNN])                         -1.49327330\n",
       "                          Equity(479 [XEC])                           0.30293134\n",
       "                          Equity(480 [XEL])                           0.02494729\n",
       "                          Equity(481 [XL])                            1.06560553\n",
       "                          Equity(482 [XLNX])                          1.34358958\n",
       "                          Equity(483 [XOM])                           1.60019024\n",
       "                          Equity(484 [XRAY])                          1.22241705\n",
       "                          Equity(485 [XRX])                           0.33144252\n",
       "                          Equity(486 [XYL])                          -0.13186423\n",
       "                          Equity(487 [YUM])                           0.18175880\n",
       "                          Equity(488 [ZBH])                          -1.40061195\n",
       "                          Equity(489 [ZION])                          0.52389302\n",
       "                          Equity(490 [ZTS])                          -0.93730520\n",
       "\n",
       "[244259 rows x 1 columns]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor_start_date = universe_end_date - pd.DateOffset(years=2, days=2)\n",
    "sector = project_helper.Sector()\n",
    "window_length = 5\n",
    "\n",
    "pipeline = Pipeline(screen=universe)\n",
    "pipeline.add(\n",
    "    mean_reversion_5day_sector_neutral(window_length, universe, sector),\n",
    "    'Mean_Reversion_5Day_Sector_Neutral')\n",
    "engine.run_pipeline(pipeline, factor_start_date, universe_end_date)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mean Reversion 5 Day Sector Neutral Smoothed Factor\n",
    "Taking the output of the previous factor, let's create a smoothed version. Implement `mean_reversion_5day_sector_neutral_smoothed` to generate a mean reversion 5 fay sector neutral smoothed factor. Call the `mean_reversion_5day_sector_neutral` function to get the unsmoothed factor, then use `SimpleMovingAverage` function to smooth it. You'll have to apply rank and zscore again."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running Integration Test on pipeline:\n",
      "> start_dat = pd.Timestamp('2015-01-05', tz='utc')\n",
      "> end_date = pd.Timestamp('2015-01-07', tz='utc')\n",
      "> universe = AverageDollarVolume(window_length=2).top(4)\n",
      "> factor = mean_reversion_5day_sector_neutral_smoothed(\n",
      "    window_length=3,\n",
      "    universe=universe,\n",
      "    sector=project_helper.Sector())\n",
      "> pipeline.add(factor, 'Mean_Reversion_5Day_Sector_Neutral_Smoothed')\n",
      "> engine.run_pipeline(pipeline, start_dat, end_date)\n",
      "\n",
      "NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=3), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)})\n",
      "GroupedRowTransform((Rank(SimpleMovingAverage((NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=3), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)}),), window_length=3), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "from zipline.pipeline.factors import SimpleMovingAverage\n",
    "\n",
    "def mean_reversion_5day_sector_neutral_smoothed(window_length, universe, sector):\n",
    "    \"\"\"\n",
    "    Generate the mean reversion 5 day sector neutral smoothed factor\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    window_length : int\n",
    "        Returns window length\n",
    "    universe : Zipline Filter\n",
    "        Universe of stocks filter\n",
    "    sector : Zipline Classifier\n",
    "        Sector classifier\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    factor : Zipline Factor\n",
    "        Mean reversion 5 day sector neutral smoothed factor\n",
    "    \"\"\"\n",
    "#     print(window_length)\n",
    "#     print(universe)\n",
    "#     print(sector)\n",
    "    mr5dsn = mean_reversion_5day_sector_neutral(window_length, universe, sector)\n",
    "#     print(mr5dsn)\n",
    "    f = SimpleMovingAverage(inputs=[mr5dsn], window_length=window_length).rank().zscore()\n",
    "    print(f)\n",
    "\n",
    "    return f\n",
    "\n",
    "\n",
    "project_tests.test_mean_reversion_5day_sector_neutral_smoothed(mean_reversion_5day_sector_neutral_smoothed)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's see what some of the smoothed data looks like."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=5), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)})\n",
      "GroupedRowTransform((Rank(SimpleMovingAverage((NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=5), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)}),), window_length=5), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Mean_Reversion_5Day_Sector_Neutral_Smoothed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"30\" valign=\"top\">2014-01-03 00:00:00+00:00</th>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>1.11580784</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>1.72840822</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>1.34188655</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>0.91160771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>0.96265774</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(5 [ABC])</th>\n",
       "      <td>0.77304334</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(6 [ABT])</th>\n",
       "      <td>0.48862173</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(7 [ACN])</th>\n",
       "      <td>-0.45945029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(8 [ADBE])</th>\n",
       "      <td>0.81680051</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(9 [ADI])</th>\n",
       "      <td>0.94807202</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(10 [ADM])</th>\n",
       "      <td>0.73657903</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(11 [ADP])</th>\n",
       "      <td>0.32088591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(12 [ADS])</th>\n",
       "      <td>-1.59713671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(13 [ADSK])</th>\n",
       "      <td>0.08022148</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(14 [AEE])</th>\n",
       "      <td>0.11668579</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(15 [AEP])</th>\n",
       "      <td>0.21878585</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(16 [AES])</th>\n",
       "      <td>-0.75116475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(17 [AET])</th>\n",
       "      <td>-1.09392925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(18 [AFL])</th>\n",
       "      <td>-0.07292862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(19 [AGN])</th>\n",
       "      <td>-0.37922881</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(20 [AIG])</th>\n",
       "      <td>1.05017208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(21 [AIV])</th>\n",
       "      <td>-0.14585723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(22 [AIZ])</th>\n",
       "      <td>0.67094327</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(23 [AJG])</th>\n",
       "      <td>-0.56155035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(24 [AKAM])</th>\n",
       "      <td>1.67735818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(25 [ALB])</th>\n",
       "      <td>1.35647227</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(26 [ALGN])</th>\n",
       "      <td>1.32730082</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(27 [ALK])</th>\n",
       "      <td>0.57613607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(28 [ALL])</th>\n",
       "      <td>0.02187859</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(29 [ALLE])</th>\n",
       "      <td>1.65547960</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"30\" valign=\"top\">2016-01-05 00:00:00+00:00</th>\n",
       "      <th>Equity(460 [VRSN])</th>\n",
       "      <td>1.12262790</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(461 [VRTX])</th>\n",
       "      <td>-1.62157363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(462 [VTR])</th>\n",
       "      <td>-1.60731804</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(463 [VZ])</th>\n",
       "      <td>-1.68572380</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(464 [WAT])</th>\n",
       "      <td>-1.00858316</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(465 [WBA])</th>\n",
       "      <td>0.98007198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(466 [WDC])</th>\n",
       "      <td>-1.22241705</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(467 [WEC])</th>\n",
       "      <td>-0.78762148</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(468 [WFC])</th>\n",
       "      <td>0.72347131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(469 [WHR])</th>\n",
       "      <td>0.37420930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(471 [WM])</th>\n",
       "      <td>-0.53814861</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(472 [WMB])</th>\n",
       "      <td>-1.65721261</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(473 [WMT])</th>\n",
       "      <td>-1.41486754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(474 [WRK])</th>\n",
       "      <td>-1.46476212</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(475 [WU])</th>\n",
       "      <td>1.55742347</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(476 [WY])</th>\n",
       "      <td>-0.41697608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(477 [WYN])</th>\n",
       "      <td>0.48112624</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(478 [WYNN])</th>\n",
       "      <td>-1.36497297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(479 [XEC])</th>\n",
       "      <td>-0.47399845</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(480 [XEL])</th>\n",
       "      <td>-0.95156079</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(481 [XL])</th>\n",
       "      <td>-0.76623809</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(482 [XLNX])</th>\n",
       "      <td>1.47188991</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(483 [XOM])</th>\n",
       "      <td>1.08698892</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(484 [XRAY])</th>\n",
       "      <td>0.10335304</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(485 [XRX])</th>\n",
       "      <td>0.98719977</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(486 [XYL])</th>\n",
       "      <td>0.66644894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(487 [YUM])</th>\n",
       "      <td>1.07273333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(488 [ZBH])</th>\n",
       "      <td>-0.13186423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(489 [ZION])</th>\n",
       "      <td>0.31718693</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(490 [ZTS])</th>\n",
       "      <td>0.16750321</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>244259 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              Mean_Reversion_5Day_Sector_Neutral_Smoothed\n",
       "2014-01-03 00:00:00+00:00 Equity(0 [A])                                        1.11580784\n",
       "                          Equity(1 [AAL])                                      1.72840822\n",
       "                          Equity(2 [AAP])                                      1.34188655\n",
       "                          Equity(3 [AAPL])                                     0.91160771\n",
       "                          Equity(4 [ABBV])                                     0.96265774\n",
       "                          Equity(5 [ABC])                                      0.77304334\n",
       "                          Equity(6 [ABT])                                      0.48862173\n",
       "                          Equity(7 [ACN])                                     -0.45945029\n",
       "                          Equity(8 [ADBE])                                     0.81680051\n",
       "                          Equity(9 [ADI])                                      0.94807202\n",
       "                          Equity(10 [ADM])                                     0.73657903\n",
       "                          Equity(11 [ADP])                                     0.32088591\n",
       "                          Equity(12 [ADS])                                    -1.59713671\n",
       "                          Equity(13 [ADSK])                                    0.08022148\n",
       "                          Equity(14 [AEE])                                     0.11668579\n",
       "                          Equity(15 [AEP])                                     0.21878585\n",
       "                          Equity(16 [AES])                                    -0.75116475\n",
       "                          Equity(17 [AET])                                    -1.09392925\n",
       "                          Equity(18 [AFL])                                    -0.07292862\n",
       "                          Equity(19 [AGN])                                    -0.37922881\n",
       "                          Equity(20 [AIG])                                     1.05017208\n",
       "                          Equity(21 [AIV])                                    -0.14585723\n",
       "                          Equity(22 [AIZ])                                     0.67094327\n",
       "                          Equity(23 [AJG])                                    -0.56155035\n",
       "                          Equity(24 [AKAM])                                    1.67735818\n",
       "                          Equity(25 [ALB])                                     1.35647227\n",
       "                          Equity(26 [ALGN])                                    1.32730082\n",
       "                          Equity(27 [ALK])                                     0.57613607\n",
       "                          Equity(28 [ALL])                                     0.02187859\n",
       "                          Equity(29 [ALLE])                                    1.65547960\n",
       "...                                                                                   ...\n",
       "2016-01-05 00:00:00+00:00 Equity(460 [VRSN])                                   1.12262790\n",
       "                          Equity(461 [VRTX])                                  -1.62157363\n",
       "                          Equity(462 [VTR])                                   -1.60731804\n",
       "                          Equity(463 [VZ])                                    -1.68572380\n",
       "                          Equity(464 [WAT])                                   -1.00858316\n",
       "                          Equity(465 [WBA])                                    0.98007198\n",
       "                          Equity(466 [WDC])                                   -1.22241705\n",
       "                          Equity(467 [WEC])                                   -0.78762148\n",
       "                          Equity(468 [WFC])                                    0.72347131\n",
       "                          Equity(469 [WHR])                                    0.37420930\n",
       "                          Equity(471 [WM])                                    -0.53814861\n",
       "                          Equity(472 [WMB])                                   -1.65721261\n",
       "                          Equity(473 [WMT])                                   -1.41486754\n",
       "                          Equity(474 [WRK])                                   -1.46476212\n",
       "                          Equity(475 [WU])                                     1.55742347\n",
       "                          Equity(476 [WY])                                    -0.41697608\n",
       "                          Equity(477 [WYN])                                    0.48112624\n",
       "                          Equity(478 [WYNN])                                  -1.36497297\n",
       "                          Equity(479 [XEC])                                   -0.47399845\n",
       "                          Equity(480 [XEL])                                   -0.95156079\n",
       "                          Equity(481 [XL])                                    -0.76623809\n",
       "                          Equity(482 [XLNX])                                   1.47188991\n",
       "                          Equity(483 [XOM])                                    1.08698892\n",
       "                          Equity(484 [XRAY])                                   0.10335304\n",
       "                          Equity(485 [XRX])                                    0.98719977\n",
       "                          Equity(486 [XYL])                                    0.66644894\n",
       "                          Equity(487 [YUM])                                    1.07273333\n",
       "                          Equity(488 [ZBH])                                   -0.13186423\n",
       "                          Equity(489 [ZION])                                   0.31718693\n",
       "                          Equity(490 [ZTS])                                    0.16750321\n",
       "\n",
       "[244259 rows x 1 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pipeline = Pipeline(screen=universe)\n",
    "pipeline.add(\n",
    "    mean_reversion_5day_sector_neutral_smoothed(5, universe, sector),\n",
    "    'Mean_Reversion_5Day_Sector_Neutral_Smoothed')\n",
    "engine.run_pipeline(pipeline, factor_start_date, universe_end_date)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overnight Sentiment Factor\n",
    "For this factor, were using the hypothesis from the paper [_Overnight Returns and Firm-Specific Investor Sentiment_](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2554010)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "from zipline.pipeline.data import USEquityPricing\n",
    "\n",
    "\n",
    "class CTO(Returns):\n",
    "    \"\"\"\n",
    "    Computes the overnight return, per hypothesis from\n",
    "    https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2554010\n",
    "    \"\"\"\n",
    "    inputs = [USEquityPricing.open, USEquityPricing.close]\n",
    "    \n",
    "    def compute(self, today, assets, out, opens, closes):\n",
    "        \"\"\"\n",
    "        The opens and closes matrix is 2 rows x N assets, with the most recent at the bottom.\n",
    "        As such, opens[-1] is the most recent open, and closes[0] is the earlier close\n",
    "        \"\"\"\n",
    "        out[:] = (opens[-1] - closes[0]) / closes[0]\n",
    "\n",
    "        \n",
    "class TrailingOvernightReturns(Returns):\n",
    "    \"\"\"\n",
    "    Sum of trailing 1m O/N returns\n",
    "    \"\"\"\n",
    "    window_safe = True\n",
    "    \n",
    "    def compute(self, today, asset_ids, out, cto):\n",
    "        out[:] = np.nansum(cto, axis=0)\n",
    "\n",
    "        \n",
    "def overnight_sentiment(cto_window_length, trail_overnight_returns_window_length, universe):\n",
    "    cto_out = CTO(mask=universe, window_length=cto_window_length)\n",
    "    return TrailingOvernightReturns(inputs=[cto_out], window_length=trail_overnight_returns_window_length) \\\n",
    "        .rank() \\\n",
    "        .zscore()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overnight Sentiment Smoothed Factor\n",
    "Just like the factor you implemented, we'll also smooth this factor."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "def overnight_sentiment_smoothed(cto_window_length, trail_overnight_returns_window_length, universe):\n",
    "    unsmoothed_factor = overnight_sentiment(cto_window_length, trail_overnight_returns_window_length, universe)\n",
    "    return SimpleMovingAverage(inputs=[unsmoothed_factor], window_length=trail_overnight_returns_window_length) \\\n",
    "        .rank() \\\n",
    "        .zscore()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Combine the Factors to a single Pipeline\n",
    "With all the factor implementations done, let's add them to a pipeline."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=5), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)})\n",
      "NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=5), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)})\n",
      "GroupedRowTransform((Rank(SimpleMovingAverage((NumExprFactor(expr='-x_0', bindings={'x_0': GroupedRowTransform((Rank(GroupedRowTransform((Returns((USEquityPricing.close::float64,), window_length=5), Sector((), window_length=0)), window_length=0), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)}),), window_length=5), method='ordinal', mask=AssetExists()), Everything((), window_length=0)), window_length=0)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Mean_Reversion_5Day_Sector_Neutral</th>\n",
       "      <th>Mean_Reversion_5Day_Sector_Neutral_Smoothed</th>\n",
       "      <th>Momentum_1YR</th>\n",
       "      <th>Overnight_Sentiment</th>\n",
       "      <th>Overnight_Sentiment_Smoothed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2014-01-03 00:00:00+00:00</th>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>0.85326482</td>\n",
       "      <td>1.11580784</td>\n",
       "      <td>1.49939067</td>\n",
       "      <td>0.70659131</td>\n",
       "      <td>1.11242837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>1.62630815</td>\n",
       "      <td>1.72840822</td>\n",
       "      <td>1.60279693</td>\n",
       "      <td>-1.70668978</td>\n",
       "      <td>-1.72843105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>0.64906469</td>\n",
       "      <td>1.34188655</td>\n",
       "      <td>0.37669421</td>\n",
       "      <td>0.03261191</td>\n",
       "      <td>-0.62687332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>1.40752230</td>\n",
       "      <td>0.91160771</td>\n",
       "      <td>-1.48461835</td>\n",
       "      <td>-1.67770142</td>\n",
       "      <td>0.53990823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>1.45857233</td>\n",
       "      <td>0.96265774</td>\n",
       "      <td>0.91588396</td>\n",
       "      <td>-1.47478289</td>\n",
       "      <td>-0.06160027</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                            Mean_Reversion_5Day_Sector_Neutral  \\\n",
       "2014-01-03 00:00:00+00:00 Equity(0 [A])                             0.85326482   \n",
       "                          Equity(1 [AAL])                           1.62630815   \n",
       "                          Equity(2 [AAP])                           0.64906469   \n",
       "                          Equity(3 [AAPL])                          1.40752230   \n",
       "                          Equity(4 [ABBV])                          1.45857233   \n",
       "\n",
       "                                            Mean_Reversion_5Day_Sector_Neutral_Smoothed  \\\n",
       "2014-01-03 00:00:00+00:00 Equity(0 [A])                                      1.11580784   \n",
       "                          Equity(1 [AAL])                                    1.72840822   \n",
       "                          Equity(2 [AAP])                                    1.34188655   \n",
       "                          Equity(3 [AAPL])                                   0.91160771   \n",
       "                          Equity(4 [ABBV])                                   0.96265774   \n",
       "\n",
       "                                            Momentum_1YR  Overnight_Sentiment  \\\n",
       "2014-01-03 00:00:00+00:00 Equity(0 [A])       1.49939067           0.70659131   \n",
       "                          Equity(1 [AAL])     1.60279693          -1.70668978   \n",
       "                          Equity(2 [AAP])     0.37669421           0.03261191   \n",
       "                          Equity(3 [AAPL])   -1.48461835          -1.67770142   \n",
       "                          Equity(4 [ABBV])    0.91588396          -1.47478289   \n",
       "\n",
       "                                            Overnight_Sentiment_Smoothed  \n",
       "2014-01-03 00:00:00+00:00 Equity(0 [A])                       1.11242837  \n",
       "                          Equity(1 [AAL])                    -1.72843105  \n",
       "                          Equity(2 [AAP])                    -0.62687332  \n",
       "                          Equity(3 [AAPL])                    0.53990823  \n",
       "                          Equity(4 [ABBV])                   -0.06160027  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "universe = AverageDollarVolume(window_length=120).top(500)\n",
    "sector = project_helper.Sector()\n",
    "\n",
    "pipeline = Pipeline(screen=universe)\n",
    "pipeline.add(\n",
    "    momentum_1yr(252, universe, sector),\n",
    "    'Momentum_1YR')\n",
    "pipeline.add(\n",
    "    mean_reversion_5day_sector_neutral(5, universe, sector),\n",
    "    'Mean_Reversion_5Day_Sector_Neutral')\n",
    "pipeline.add(\n",
    "    mean_reversion_5day_sector_neutral_smoothed(5, universe, sector),\n",
    "    'Mean_Reversion_5Day_Sector_Neutral_Smoothed')\n",
    "pipeline.add(\n",
    "    overnight_sentiment(2, 5, universe),\n",
    "    'Overnight_Sentiment')\n",
    "pipeline.add(\n",
    "    overnight_sentiment_smoothed(2, 5, universe),\n",
    "    'Overnight_Sentiment_Smoothed')\n",
    "all_factors = engine.run_pipeline(pipeline, factor_start_date, universe_end_date)\n",
    "\n",
    "all_factors.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluate Alpha Factors\n",
    "*Note:* _We're evaluating the alpha factors using delay of 1_\n",
    "## Get Pricing Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "import alphalens as al\n",
    "\n",
    "assets = all_factors.index.levels[1].values.tolist()\n",
    "pricing = get_pricing(\n",
    "    data_portal,\n",
    "    trading_calendar,\n",
    "    assets,\n",
    "    factor_start_date,\n",
    "    universe_end_date)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Format alpha factors and pricing for Alphalens\n",
    "In order to use a lot of the alphalens functions, we need to aligned the indices and convert the time to unix timestamp. In this next cell, we'll do just that."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dropped 1.2% entries from factor data: 1.2% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).\n",
      "max_loss is 35.0%, not exceeded: OK!\n",
      "Dropped 1.2% entries from factor data: 1.2% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).\n",
      "max_loss is 35.0%, not exceeded: OK!\n",
      "Dropped 2.3% entries from factor data: 2.3% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).\n",
      "max_loss is 35.0%, not exceeded: OK!\n",
      "Dropped 0.4% entries from factor data: 0.4% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).\n",
      "max_loss is 35.0%, not exceeded: OK!\n",
      "Dropped 0.4% entries from factor data: 0.4% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).\n",
      "max_loss is 35.0%, not exceeded: OK!\n"
     ]
    }
   ],
   "source": [
    "clean_factor_data = {\n",
    "    factor: al.utils.get_clean_factor_and_forward_returns(factor=factor_data, prices=pricing, periods=[1])\n",
    "    for factor, factor_data in all_factors.iteritems()}\n",
    "\n",
    "unixt_factor_data = {\n",
    "    factor: factor_data.set_index(pd.MultiIndex.from_tuples(\n",
    "        [(x.timestamp(), y) for x, y in factor_data.index.values],\n",
    "        names=['date', 'asset']))\n",
    "    for factor, factor_data in clean_factor_data.items()}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Quantile Analysis\n",
    "### Factor Returns\n",
    "Let's view the factor returns over time. We should be seeing it generally move up and to the right."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc87342c080>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEYCAYAAABY7FHWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXd4FNX6xz+zJT0hjRYCAkIoAaRJ70noAQQc5eoVbNyroj9ULtLEgohIE0XlAqJXrxdYlKqIhI40EZTeIi0hJJSE9N3s7szvj8lussmmspBE5vM8PGRnzpzzzmRz3jnvOef7CrIso6KioqKiYkNT0QaoqKioqFQuVMegoqKiouKA6hhUVFRUVBxQHYOKioqKigOqY1BRUVFRcUB1DCoqKioqDqiOQUVFRUXFAdUxqKioqKg4oDoGFRUVFRUHdBVtgBPUrdgqKioq5UNwRSWV0TGQkJBQ0SYUSXBwMDdv3qxoM0pEtdP1VAVbq4KNoNp5NwgJCXFZXWooSUVFRUXFAdUxqKioqKg4oDoGFRUVFRUHhEoouy0XnGOQZRmj0YgkSQiCS+ZWyo27uzsmk6lCbSgNqp2upyrYWhVshMpppyzLaDQaPDw87P1MFZxj+OtOPhfEaDSi1+vR6SreXJ1Oh1arrWgzSkS10/VUBVurgo1Qee20WCwYjUY8PT0r2pQKpUqEkiRJqhROQUVF5a+NTqdDkqSKNqPCqRKOoaLDRyoqKvcPlbG/kSWZexn2rxKOQUVFReV+Zu/2DE4fM96z9kqMz4iiuBwYDFw3GAwtnJxvCnwJtAWmGgyGufnO9QcWAlpgmcFg+MBVhquoqKjcD8iyTGqKlXsZ4SrNiOEroH8x55OBV4C5+Q+KoqgFPgUGAM2BUaIoNi+fmRVPnTp1ePnll+2fLRYLLVu25Kmnnron7Y8cOZLu3bsTGRnJwIEDOXHixD1ptyBbtmxh0aJFLq2zbt26REVFERUVxZgxY+zH899zjx49mDp1KqmpqS5te+HChfTu3ZvIyEiioqI4cuRImeuIi4tj7dq1LrEnLi6OOnXqsHz5cvuxqVOnsmrVqnLXV17bGjduXK7rVFxHVqaV9FQJSYL0NCuydG/CSSWOGAwGw25RFOsXc/46cF0UxUEFTnUAYg0GwwUAURRXAkOBU+U3F6SVS5HjLt5JFYUQ6jZA8/jzxZbx8vLi7NmzZGdno9fr2b17N7Vq1XKpHSWxaNEiHnroIVatWsV7773HypUr71pbVqvV6aqRvn370rdvX5e25eHhQUxMjNNztnvOyclh1qxZPPPMM3z//fcuafe3335j69atbN68GXd3d5KTk8nJySlzPbbO95FHHin1NRaLpcgFFcHBwXzxxRc8+eSTuLm5ldme0tpWnA0qlYNtP6Tbf5askJkh4eN391dz3c1vRR0gLt/neKCjs4KiKI4FxgIYDAaCg4MdziclJdm/wBaNBsnFk0MajaZUfyARERFs3bqV6OhoNmzYwPDhwzlw4AA6nY7MzEymTJnCmTNnsFgsTJgwgQEDBnDlyhXGjRtHVlYWALNmzeLhhx9m7969zJ07l8DAQM6cOUOrVq347LPPipz4EgQBrVaLTqejQ4cOLF682G7zzp07+fDDD8nJyaF+/fosXLiQXbt2sXLlSpYuXQrA3r17+fzzz/nvf//rtLy3tzft27dn1KhR7Ny5k2eeeYabN2/y9ddfo9VqCQsLY8mSJaxcuZKjR48ya9Ys4uLiGD9+PLdu3SIoKIiFCxcSGhrKK6+8go+PD0ePHuX69etMnz6d6OjoYp+ts+ef/551Oh1vv/02HTt25OzZs4SHhzN69GgSEhIwmUw899xzPPXUU3z77becOXOGGTNmAPDNN99w/vx53n333UL12+z29vYGoEaNGvZzR48e5a233iIzM5PAwEA+/vhjatasSVxcHP/617+4desWWq2WZcuWMWvWLM6fP0/fvn0RRZExY8bwxhtv8Mcff6DT6XjnnXfo1q0bK1euZOvWrRiNRrKyslizZk0hm7RaLUFBQXTo0IHvv/+ev//972g0GvtzuHTpEpMmTeLWrVt4enoyb948GjduzCuvvEJUVBTR0dHodDoaNGjAxYsXC9nm7+/vYMM333zDU089RWpqKmazmUmTJjFgwIBify+uorI6JXd3d3sfpNPpCvVH95bbDp9kyZvgYJ+73urd/M046+GcjoMMBsMSYImtTMENJSaTKe/tVXz2rsyYWyyWEstER0fbQw8nT55EFEX279+PxWJh/vz5dOnShXnz5pGamsqgQYPo2rUrAQEB/O9//8PDw4MLFy7w0ksv8dNPP2G1Wjl+/Djbt2+nVq1aDB06lP3799OhQwenbcuyjNVqxWKx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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc87342c470>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ls_factor_returns = pd.DataFrame()\n",
    "\n",
    "for factor, factor_data in clean_factor_data.items():\n",
    "    ls_factor_returns[factor] = al.performance.factor_returns(factor_data).iloc[:, 0]\n",
    "\n",
    "(1+ls_factor_returns).cumprod().plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Basis Points Per Day per Quantile\n",
    "It is not enough to look just at the factor weighted return. A good alpha is also monotonic in quantiles. Let's looks the basis points for the factor returns."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fc8706e57f0>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fc870690a90>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x7fc8707e2048>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fc870645f98>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x7fc87075aa58>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fc87075a940>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x7fc870689cc0>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fc870549860>]], dtype=object)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc8706d8550>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "qr_factor_returns = pd.DataFrame()\n",
    "\n",
    "for factor, factor_data in unixt_factor_data.items():\n",
    "    qr_factor_returns[factor] = al.performance.mean_return_by_quantile(factor_data)[0].iloc[:, 0]\n",
    "\n",
    "(10000*qr_factor_returns).plot.bar(\n",
    "    subplots=True,\n",
    "    sharey=True,\n",
    "    layout=(4,2),\n",
    "    figsize=(14, 14),\n",
    "    legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What do you observe?\n",
    "\n",
    "- None of these alphas are **strictly monotonic**; this should lead you to question why this is? Further research and refinement of the alphas needs to be done. What is it about these alphas that leads to the highest ranking stocks in all alphas except MR 5D smoothed to *not* perform the best.\n",
    "- The majority of the return is coming from the **short side** in all these alphas. The negative return in quintile 1 is very large in all alphas. This could also a cause for concern becuase when you short stocks, you need to locate the short; shorts can be expensive or not available at all.\n",
    "- If you look at the magnitude of the return spread (i.e., Q1 minus Q5), we are working with daily returns in the 0.03%, i.e., **3 basis points**, neighborhood *before all transaction costs, shorting costs, etc.*. Assuming 252 days in a year, that's 7.56% return annualized. Transaction costs may cut this in half. As such, it should be clear that these alphas can only survive in an institutional setting and that leverage will likely need to be applied in order to achieve an attractive return.\n",
    "\n",
    "## Turnover Analysis\n",
    "\n",
    "Without doing a full and formal backtest, we can analyze how stable the alphas are over time. Stability in this sense means that from period to period, the alpha ranks do not change much. Since trading is costly, we always prefer, all other things being equal, that the ranks do not change significantly per period. We can measure this with the **factor rank autocorrelation (FRA)**.\n",
    "\n",
    "[alphalens.performance.factor_rank_autocorrelation](https://quantopian.github.io/alphalens/alphalens.html?highlight=factor_rank_autocorrelation#alphalens.performance.factor_rank_autocorrelation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc8703f45f8>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEaCAYAAADqqhd6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXWUXMeZ9n91qRmGQTNiWRYYZWY7McZOHFLiwAZOaHeTbHg3ybfZbHA3u8kGvImDDjikgGNmtmNbYNkCSyOakYanp5n7Qn1/3J4eENuKZWv7OafPTN+uW/UWPS9U3VtCSkkdddRRRx3HFpSjLUAdddRRRx1HHnVyr6OOOuo4BlEn9zrqqKOOYxB1cq+jjjrqOAZRJ/c66qijjmMQdXKvo4466jgGUSf3Ol6xEEK8TwhROtpyHCsQQtwkhLj7COSzUAghhRBnHQm56nhhqJP7ywRCiJ9XJ8TMz1uPYBlSCPGOI5XfPvLXZsieF0JsFkJ87G9V5ouBEOJ+IYQthLjsBd7/biGEdaTleiVBCNEnhPh/My73Ah3AuqMgUh1VaEdbgDqm4TFg5YxrqaMhyIEghNCllOYBknwIuAXwAVcA3xNCZKSUP3tJBDwECCEWAOcA3wI+CNx7dCV6cRBCCECb2S9CCAUQUkr7pZKlWtbIS1VeHftG3XJ/eaEipRyZ8SkBCCFOF0LcI4SICSGyQojVMy1OIYQuhPh3IcQuIURFCDEghPif6m8D1WS/qlrV1pT7rhFCPCOEKAshRoUQ1wsh/FN+v0kIcbcQ4mNCiN1AWQihH6Ae6arsvVLKHwCbgcun5KcKIX4ihNgphChW/35FCGFMSfMVIcRWIcQbhBA9QoicEOKhKinvE0IInxDiFiHEs0KIjoO09fuB24DvAq8RQrTPyOsrQoitM65dVG27LiHEq4EbAXWKp/KTajpDCPENIcRQtR82CSHeMiOvkBDiu9U+KgsheoUQn5ny+xIhxF1V7ycrhLhVCDF/yu/vE0KUhBCvFkI8C1SAi6a023VCiJ7q9fnVe94uhHiuel+vEOK/p/bzPtrzgGNOCPE4MAf48pQ26BL7CMscRn3Or/ZfQQixRgix4iD9WMd+UCf3Vw5CwG+AC4EVwAPAbUKIhVPS/BzXav5XYAnwZmB39bdTqn8/jOsyzwIQQpwC/AV4EDgJeA9wLfC/M8o/BzgPeC1wMnBQS1AIoQghLgWOwyWZCSjAMPC2qpyfxCXbf56RRVf1+nXVsqPAT/ZTVhNum4SBC6WUwweQS6/W8+dSyn5cj+m9B6vPDDwKfAy3HTqqn09Uf/vPan4fBZYDvwd+K4S4qFq+AO4ErgL+AbcN3gMkqr/7gfsAFTgfuLha97tmKFUd+FpVjuOB9dXr3cAHgHcCy4BhIcT7cBXZfwFLgXfjelUz+3kqDjbmXgsMVOs70QZDMzM5zPp8BfjHanlJ4PdCCPUAMtaxP0gp65+XwQeXmC0gN+XTc5B7NgP/XP1/MSCBaw+QXgLvmHHtt8BfZ1x7I+AAs6rfb8IlHv9B5NGqZZSq8pvV7zngtIPc+2lgy5TvX6ne3zTl2ttxyVSvfn9ftaw5wBbgD4DnENr6zcAgoFa/vwPYhRu+mFr+1hn3XVStT1f1+7sBa0aaEK4i+8CM67cB91b/v7yaz8n7ke+D1TZrnHKtAygDb5tSdwmcPePer1TbaNaM6wPA+2Zcu6Taz6Ep/Xz3oY656vc+4P/NSLOwKttZL6A+J05Jc2712oKjNS9fyZ+65f7ywtO4VvHEZ2ooo1UI8YNqiCIlhMjhWmtzqkkm3NfDjR0vw7VCp+IRQOBaeBPYLKUsHGKe/1yV/xLgSeBfpJRrpyYQQnyo6naPVevyZSbrMoF+KWV8yvchXKu/Zco1rVrGM8BbpJTlQ5Dvg8BNcjIO/WegGbj0kGp3YCzCtUD31abLqv+vAGJSymf3k8cyYJOUMjFxQbqeyPYpeYBLzGvZG0NSysGJL9UQ1Szgu9XwVq7a5rfh9vPCfeRxKGPuUHGo9bGATVPrUf3bdpjl1UF9QfXlhqKUcsd+fvsV0A58CtdaKgJ/BIz9pD8czHw1qNjH9fxh5DdarccOIcTrga1CiPVSyicAhBDXAd/BVQKPARngrcC/zcinMuP7hDxTjRILuAO4Bje8sflAglVj9pcAFwshPjnlJ5XpC6sOk+0wgQOtM8zEvtpUHuD3g92/rzxMue+F7Zl9NdFeH2ZvpQPQvx8ZjuSYO5T62FJKZx/31I3QF4B6o71ycAFwvZTyNinlRmAUmDvl92eqfw+0rc/EJbGp2IwbU51ZlsQNdbwoSClHgRtwrcYJsrwAWCul/LaUcp2Ucjsw70UU8wFc6/shIcSJB0n7fmAj7vrCVC/p7cBrpyysjgFtwt1tMoFTZ+RVAZQp9QLXGjXZd5tOKJ51QKsQ4uT9yLgZOEEI0ThxoWp9L+Qgyms/GMJd4zhOSrljH5/9eTsHG3PgtsHBYuJHuj51HALq5P7KQQ/wDiHE8uoi6O+Y0n9Syq24C3c/FEK8TQgxv7rb4aNT8ugFLhFCdFYXIAG+AZxZ3TlxvBDiKlyr+hdTXfsXie/iLiy+aUpdThbuLp2FQoiPA697oZlLF/+Au/j3YLV99sKUhdTfSSk3Tf3gtuc4kwurD+Iuzn5RCLGgutvl72dk2YtrfV4thGgRQgSllFngeuBrQog3CiGOE+4+8NfgLn6Cu7j4JPBHIcRrhRDzhBDnCSEmyv4V7hbY3wkhThFCnFaVrw/Xcj7s9gE+D3xcCPFZIcQyIcRiIcTrhRA/OMCtBxxzU9rgPCFEtxCieYYynMARrU8dh4Y6ub9y8C7AA6zBtVJvZdJan8Df4e4m+TqwFbiZ6fHRTwBn4k6qUQAp5Xrc3TGXAM/hLuzegrtj4YigGl/9Ne6WORX4Pu5C7i9wrdgVwJeOQDkfA36GS/Cn7yPJtUArsGof9zq4RPM+IYSQUj6PG6Z5J66l/3fA52bc8yQukf8M19L/dvWnf6le+x5uDPk63IXDR6aUdQVwD/BD3L76JdBU/b2AG/+3gceBh4E0cOV+wjAHhZTyxqocr8ON068BvoC7sLw/HMqY+1fc9YptQAzo3EfZR7w+dRwcwlXqddRRRx11HEuoW+511FFHHccg6uReRx111HEMok7uddRRRx3HIOrkXkcdddRxDOJoPsRUX8mto4466nhhmPmA3V44qk+oDg3t9Y4hmpubGR8fPwrS/O1Qr9MrA/U6vXJwLNbrUOvU2bnXbtN9oh6WqaOOOuo4BlEn9zrqqKOOYxB1cq+jjjrqOAZRJ/c66qijjmMQdXKvo4466jgGcdDdMitXrvwZcDUwtmrVquX7+F3gvkXwKqAAvHvVqlUzXy5URx111FHHS4hDsdx/jvsGu/3hStzTZxbhvlf7QK8QraOOOuqo4yXAQcl91apVj1I9uHc/eB3wy1WrVslVq1Y9BURXrlx5sJPn/+aQzt7PSFUqzj6vv9IhndqZk3UcJjIpm9iISWzEJBkv19txCibmSrHgvKh2mbjXsiSF/OHn5UyZs8WCQzpp75VHIW9TLjlkMzbDAxVGBk3KZQfTlJRLDuWyMy2/fM6elu/B5H+x40JKiWkefr0T4xY7t5bo3Vamd3uZ4YGZh5PtH0fiIaZZTD+ma6B6ba/T51euXPkBXOueVatWkUt70Q2FTKpCKKzT2eVH0zQaG5rIZU2CYR2z4qAbCooisG2Jqgosy2H14+MEQxoLFodRFHAcCAQ1RoaKPPVojGS8QkeXD8eWBEIas+cGePjeUXRdcNJpjbW8mlo99O3IMTxYpL3TRzCkUSrZSAf8QY1s2mTJCREcKUmOV2hs9tDU4mHtk+O0tvuYPS8wrY7FgsW6pxJ0dvkYHyuRSZt0zErTNTfM+tUJuub4aWnz0rMpTT5n09bpJRmv4PEq+Pwauq4w2F9AVdx6WpZEUQTLTopQqTgIIQiGNXZty9I9N8DOniw7e7L4/Brnv7oVKWFksMiCxSGCIY2+HTnaZ/nw+ad3dTZjUi7ZNLV4GBkqMj5apntuAKHAlg1pNF1w0opG1q9OMDpcJBzR6ZobIBjSGB0qMTaYJhDyEhstEY7oKIogGNZpbvGQyZikExVyWQvDo9DU4iGXsTBNB8eRzJ4X2EueqTArDpoumH7AESTjZbY9n2HWbD/hiM7OniwnrGhA0xSyGZNs2kRVBW2dvto9jiPZ05unXLLx+twDg2bPCyCEYOumNE89mmJy3ubRdUH7LB/nXNSKz68ihEBKieOAqgqS8TL+gIbH6+Y1MY6mopC3sEyHQEhHVQWlks34aAmAdMrE51OpVByKBRtFccft6HCJ2GiJ1nYvI0NFpIQlJ0RYvCzCk4+MEQrrNDZ7GB4somkCr9fNo78vT2eXn2zWJJWo0NLmJRR223bZyQ1omkZzczPgEszIUJGGJg/pZIXeHTkKOYszzmtm/eoEO7ZmAfAH3HqXSjbdcwL07cwRCLpjM52qoKoCf0ADAZmU+zr2phYPiiqYOz/A0ECRTMqktd1LLmcyPloGAbblNnS00WD5yVF6d+SoVBwuu6YTw1BwHHesO46kb0eOXduzjA2XKJcdQmENVXXLlxI2rqsQDKn09xVoaDJIxg9MekK4MjqOJBl381BVt69DEZ1iwSKftSiVbJadFCWbMWlt89I1N8C9tw0RbTA49+IWdm3P0t+b56wLW7BMyc6eLMctC6MIePLRGKoi8PhUYqMlvD6VOfOCxEZL9O3IUSzaBEMaXp9KKKxTKFjkcxalok04YuD1DeH1KrS0eykVbbZuylAuOXvVZcUZB6zqZJ0PRSOtXLlyLnD7fmLudwBfX7Vq1ePV7w8An1m1atW6g2Qrf/g/z0+74PUJ/H6dxIyOijaqdHTpbNlQQtcF8xd76NlUOqjcALohsExZm8CRBpV00t534pknOu4H7V06IwPuoL7i9WHiMRtNFyTHLXZsKWFZ1ewUUFWwTGoKaJ/FCpjZDUKAz+86VoX8fm7EzbelXWN0yJp2PRxRWH6qn78+lMPrE7zq6jA9m0oEwyrdcw3uvz1DMe/g9QlKxYNX2vAIKuUjY9UGwwoXXBZifNQi2qRSKUkevjvLORcHCYQU7rs1w9yFBsef6GPz+iKWJbFMSSphY1ZcGYQCE6dtqhrY1mR7aLorazii0NCssXvn9PFkeATLT/Gx+dkigZDC4uWuEWDoAfb0pWrpvT6BpgtyGYdoo0r3PION64oEggpnXBDgoTtdMjzv1UG2biwRCCqcsMLHXX9KY9vQ2KKy/BQ/j96bPWibKAoEQgq5jENDs0oitp8xegCEowqFvINlTnxXufLabh65fxBNc8fY4O6Dn40xe55BKmmTSdm1OdHYrKKoojZ/NF1gVSTjYxaa7o7VUlFiViRen8DwCDIpB49X0NmtU8g7RBu1KiFOP9Vv/mIPQsDOnjKRqEqkQWXPLrcPWjs0oo0qmZTb2f6ggq4LRgZt0km3LooKi5d5KRYcsmmb45b7sC13vAgBZkViWZJsxiaXcejo0ok0qGTTNmPDFqWigz+gkM87yBlTberYWn6qj8HdFZJxm2ijilmR5HMOhkdgGIJcdv/zFGDuQoNsxqFUdCiXHAJBFcMjkJLa+J7Zn4uWeGls0WocUS45LFk2G16i1w8MAN1TvncxeWr5ATFngUFbp044qjI6ZDI6ZCL2ESlKJexaxU1Tsm1zieY2jQWLPRQLDqm4zZ5edzAcf6KX2fMNDEOQTbvkZZmSoX4Tf1Chs9sgm7YpFd3BNrinwuiQyUmn+/F4BNueL7Ftszv4Fi7x0NisUSq6HejzKwz1m/TtmBycTz+aJxmf7JS2WRoCQWzU5OIrw3i8Ak0Jc/+dg+RzDstO8mI7MGu2QSZloxuCcERloK+C1++WUS5JWju0muWaTbv19/kF5ZKkWHAt23zWYcHxHrw+hfiYxab1RTq6dHRDsOmZImuecM9JLhUlG9YW6a+20diQSbGqMEpFyUmn+2hq1djyXIlgWGHeIg/xmEUmZROKqDS3ahgeQSpuUy5LIg0qLa1NbHhmhNZ2DceBHVtKDO4x6Z5r0N9XweMVnH1RkJ09Zfp7K8yao3P8CV4SMZv1Txe4849pALrnGUQbXCt42/MuQQL07ajQt2P/1lhjk4o/oBKPWQRCCrERi/mLPQz0VWpKKJN2yKQrhMIKp5wVoFxyGO432dNb4ZmnCgAsXm7Q3OpOg+bmMNHmCrYliY1a6Logm3GmjMEiAPmcw+P352qyPLemQDbtMD4KbZ06dnU4JGL2NGI/+QwfuazD4B6TFWf78fqU2oQNRVRU1Z3AiiIoFhx6t5fZubVMQ5PK7PkGHp9Cc6uGIqBSkVUvzaSpVUNVXYvbcSTZtMPA7gq7esrc8acBctlJxR+OqhiGoGuuTmuHXlNkLe0aui6QQCjs9ke55KBqAk3bP4/YtkQRIBTXw8llHQJBBcuSjA1ZtHfpe90faVTx+hQamlQeuy/LrirZRxpUshmbdNKdF3MWGCxa6t1n+edc2EwsFmNs2KKpRUPT907T1nlo55lLKRFCkIxbbFhTYOESL4W8QzzmttvCJV7WP5VneMCkUjUuUgmbUFhh6cle4mMWtg3zFnmYu8hDqeiQy7ok7vMpeHyCQFDZyxOdiYaGJkZGYiBdheQPuhGLqfD6Dn2D45Gw3F+De6r6VbhHuH131apVh+I4yP29W2ZkJIaqUNW2Dk88kKOtU2PJST4evsudLOdfGiTa6E5KKSUb1hTp6HYH7IuFlBLbZr+DulJ2O+/Z1QXyWQdNdydWOKpwypmBaW58rU7DMcplV1v/rWGZkntuSaNpgjMvCDDQV6F3+yRRen2CUknS2aXT2qHRPc9z2GXMfA+GlJJSUeLzK3vVP5ex8fkV1Gp77thSYssG1/PSdJizwMPOrfs+o7l7nkEqYbH0ZB/SgcZmDduWeLx7h23AjcmODJjMWWgwNmyx9ok8p58foG3KuDBNyZMP5SgVHS64LFSbMPt6t8fqx3OMDlo1Q6S1XePZNQVsG6INaq0eza0auayNqrlKF1yPs7PbLTeXdTjpdH+trQ420SeQTdsYHoHHe3i7lqWUbNtcpnd7BcMDx5/gJRxVCYb+9uPvcFAsOMRGTKKNGqGIgmW6c8/wiL2IbSpe6nfLbFhbYKCvguPA/OM8zFlg4D8Ewj4cHOa7ZQ5a8EHJfeXKlb8FLsI9J3EU+DdAB1i1atUN1a2Q1+PuqCkA71m1atXag0p4AHKfWcHEuEWkQUURcPdf0rR26Kw4O7DXvS811v01z1C/yWnn+unoMvab7mi85CiVsKpxfJcUclmbdMKmpV3D8EzGN18oXmydhvorlIqSzeuLKAogwKlavJe9Lkwh77rYs+cfvuKZiv3V03EkSFCmxMv3VSfblji2RDf2Ta6ZlI1pSppaNMZGTNY/VaBSlqw4x09n9/7HxEuFaLSReDy+17rAKx0v9ZyKjZpsXFsEASed5qep9ci/c/ElJ/e/IQ6Z3Kcin7PxeJUDuoovFWKjJqNDFstO9h5Qg/9ffoPdgeA4ko3r3FBHR7dOctzC51deNKG/UByJOlmWZHzUorVDe1HK80jhWBx7cGzW60iT+1F95e8LwUsR1jhUtLTptLS9+DDQ/1UoiqiFKgBa21/5balpgvZZr/x61PHKR/31A3XUUUcdxyDq5F5HHXXUcQyiTu511FFHHccg6uReRx3HGBQrDfLwH4Kq49hCndwnIB32ejzt/zLq71h5+UNaNPRfT2Toxlp/qeURmvv+g9DYzUdZuL899OIufMlHj7YYLwrB8TsIjf7xb8I9dXKvorn3q4RHfnu0xXhZQCsP0brzc+iFnShmApyDP7L+coVWHkIr7/Wao8OCN/00gfh9R0iiSXiy690x9wLbVyuPopcH8RS2EYzdQnjktzT1fwcAX3bdy8dYkRJP9lmQ1sHTHgLU8giYWRoGf0woftdB0wsrhye38YiUDRCI30vjnu+gVl78Vkx/6nF82XWolbEjINl01MkdwDFRnALe/CZ8qccRdr72ky/1OOGR3xw1N1fYRUJjNyPs3METHyEY+R4AGoZ+QvPu/yKQeOBvW6BTwZ94COEc2vuCDhVaaZDG/u8RHfzhC/ZECqZNOPYXAskHj6hsaiVGZHQV3twGfJnVLyiPyPDPa//7M0/jzW0AoOxfBIBiZV60nHtB2gTG7z4sYvPkNhAZ/T3+1BO1a8LO09T3n4TG/nRYpK9WRmnq/w5i6/emyHTg+6PDvyAy8huEXTzkcg4Eb/YZtMoIobG9Le7g+J0E4vcfWkZTlLpqpY+IbFPx8iV36eBPPIAv9Vdw3EfnfanH8aafflEhAyPfg1ae/vCUasZr/4fG7yAYvwcj/zz+xP2Exu/Am9uIWonhHIFXfx4u9OIufJnV+JOPA6CV+mvKZ0LxBMbvnFaHmVDMxGEpJ9VKApBtfg0AgdQjNcI/XAg7x1g2R8mqTgLpvvL1uaEsu+LuZAskHiCYuBf/kXSxpSQYvxMAxSnTuOebCLuAXuxD2IeuRL78wI7Jujj7fkWCsIt4M8/s01IWTgmtNDhDNovGPf9T++rLrAXpIKxJBa6YSRoGfkB08CcEY7ftlbdwyqhVhV8KnghAIXIO8e5/ohC9EGCfY0LYeaIDN7jW74EgJZ7sBkJjN+NPPFQr35tZSyD1yGEpfK0Sq8o82e5GYRuqlcKXWYsv/VStTCO/tZZOrcRco8Yxa4pKL7kvoBX53lpeil3El/orRn7rvsuvem6K7eahlkdo2POdA86Z/UHYeVQrjWW0YpR248s8jZHbjGJlEHYef+oxAskHUMzkQfOaSuh/C0X8sniISdglAskHsNUQiNkoVhOe3AaCiaoGFIJi+HRC43cA4Es/TaHxYsrBE0DaKHYeR/GBos/It4hwSjh6g3tBSsKjq5CKl/icj4Nwq6+ZrhWS6Pow/uTD+DJr8GXWAOAoXhSnhF4e4lMPl4kVTH72+oUvvLJSuq98PERMEK0v8zTFyJk0DNyAowbJtr6OYPwepNARTgnFzpFtW7nX/YqZoHn3f1HxziXV9UHUyjhGYSvFyLn7lUMv7abiW0gxeh623kp0+EY8uQ1UAosnE9klPLlNVPyLkMp+niiVNi29X2V3up17i2fyifZbALh+7BpeG3qEe+PzmLPAQ6DsWq56sXff+VThSz+JP/Ew2dZrqQSWTCmnqnCn1Mco9GAUd5GPXkAg9SiaGcebWUcofieW3kRizqcOWJZW3E1g7BZ+unAypKOaCSzP3kcVBMdvx5d9BsXOUmi4EKSDJ/88Fd98okM/RSuPEpv/b7XxGUg8hEDiKB5KoVPxp58kMvRzPMXtpNrfQSW4DGfsEbTSIJbRgj/9V0rBE7F8c2plKqZ7xEK67TpsvQlvbgOl0EnYnnZklVj2RV6e/BaM0m5C47eRmvX+/dbfm32G8Ngfp1yxKTRcTHD8zmqbH3ooSTiuMbI9afMfT/Vy4dww727eOZlzfB1Ez0Mv7iQ6/AuK4TMo+xcTGbkJRwsDKqqVYGzB12rWt2w5DxFzDZ5A/B582XWU/cdTCRzvZuqY+FOPU4iei8A1bBQri220YRR3oVdGMEZv5z779Zw3Jzy97unVhGM3UwosI9O2EhQDYWUxijuQivvQXbb5tQTH78CbXo1eGcHSW8g3XlLLw596lFzL62rf9WIvkZHfUAosc+eV0YxipWq/H9RyP0zegJcBuU+QTw1xCChNeJwMFd8CjOJOtPIIWtXSKPsWoVopIiO/qREvgKP4SM16P7YWQQoNEDTu+RaKXSQ+959xtBCKnUFxCuAU8KVXU4yeA1BzMW2jmVWxk3mzpwe75RJK4VNw1CAtu76IVhlh6/jk05TCKdO457sUoudQDJ+OUezFNpqx9SY82Q0Yha17ka2wcjTt+RbZlmsoh07Zd4NISSBxH1p5kHTH36GaSSQCxSkRiv0FgYOQJtHhXwGQ7HwfgeQD+LLrcbQG8k2XIuwintwmSuHT0CqjABilPrTyEN7MM/jTT2D6FuyTqNTKOFpljGzzmQBUAsdRDizFm9uAamUoBU+gFD4dMXgHkZG7yTW+ikLjqxlIl7lhzSiXL4xyWpugPfknbC0KwGmREU6L3FIr4+0N99Kgl3lf13NQhmL4dIRTQS/1uQkck8jwr8g3vRplwlLSmwnGbkfgEIrdQty3AIRCcPxuPLkNOFqIZPdHamUYhe04wiDXeCkb+3ZwVnQIJeFaiJoZd115MWX4z7CMfZmnEZU4t8YWIZC8pmUH8YEniCx4Uy1NIH4vnvwWtIo7NvXiTmi4EE/+eSIjv57erlYC22gDKfGln3SJo+MdIB30Yh+e4nYAoiM3kdLmErX66Jfz8c66jpberxIdupHx+V9AsfNuKKP69LmtN2B5ZzG24Gu1ye9oYSQC1UqBmSUYu5V80+VIxYNWHqzK2oeR78HWG/DkNlGMnIFUgzV59eJOHDXA+NzPER38EZ78Vkqh01Ck60VX8oe+jmGV3Zf9DY8Pco63yK+eXcoHzt3B09l5bEyHee+sDcTtUi2spJf2oJd2AwLhlGtzXLFSKE4RiWCNdg037wjw9YUusQMIOflyvEDyQQLJh3HUyXdQ6eUhTP9C1KpiDJW28vCWtSxtvYBGnzsWjPwWwjF3Mdqb30wlt4FS+DR8mdU1Y1MisLyzsLxdNSNQM2MYxV4c4aEcPAFfZi35pitqho83sxbhlPBl1+HNbWB87mcxCtuRKEjFUxv7uYpNQJ/+QjJXMfyaTOsbpxs1B8FRDcuoZhz/8O8B+P6eU/l6/P04jafhc+IomGRa30DFOxe9tAejsA2AbOsbyDW7p/4pToli+HSyzVcjhUZj/3dp6f0ynr4f4s0+i2rnENjuYg7UFISthgjG70Iv9lXlGMdWQ0jFww82qly+7i2kIxfiaBEQKpbRhlKaHsrxZDegWglC47fTuuvfiA7/nNDonwCIjP4WX3b9pGvmVEA6GMXtKE6RyOgqtFL/tPy04m608hBGYQuB5EN4CtswCjtQrSS20ULFOw9PtQ0S3R+u3Wd5Z9XccH/qUZCS0Ngv9mTIAAAgAElEQVSfCMf+jFYemma9+ZMPo1TbwJPbgFYeomXnF4gM/RK1PFptC9eFHrTbavflGi+lFDoVxUoRjt2Mkd8CpVg1n81opT1ow7exdSzLT5/exZzBr+Ep9ODPPI3FpDdV9rkeT4M+PbxRjJyFrTe5rqm00MpDeIrbiQz/mujwLwnFbqFh6Kc4aoBU+ztRrTSB5KP4Uk/iTz+BVAz08tC0sIli53C0EP1Zm4/3XMrDidkE5OSBYlPbJRC/h6a+/6iF/4RTxpPfwprcHH6TuJhTz3wPD2aWs0iuY2jIdf3VSoxA8qEasVe88ybdf3PSIitEz6umj1fzLqA4RUzfXDeBUMg3vbqW/uH0EqJWHwCrx3T6sjqW3oIiywiniFHYjqfQg1HYhhQatt5czWeKVSdUHDXkhgpGHsKffpJg7FbADZFYeiOWp53I8K9oGLiBYOI+mnb/N1ppoJaFVhnDMjpAKNh6Y1XJuvXakG0hKBMIu4RWHqKh/3s09f0nRm4z+8Jo2g05XNm8i4/OWcsVLf2oVpr12U5WpztRhMST21ibn1plBK0ySr7xUhJd/zhFplGEU8TCyydu3cJQcXJsWXozwpkkd6PgegYVezIcGYzfhbCLqFYSS28mYXq5smUnW8YKk2nGb8cyWin7j6/223itPSZgemcjFe9expEvsxrL24Xpm4eQFopVfd2ztPHkt1AKnkC67a0oThFPoQdfZg1F70Kec87AKO6kb9dafvHgPazpT6KVh4gO/Ai9sB1/6nEUO09w/I7DCkkfVXKPDP0Sf2UPX9xxHr8aPoHNCYWkOvlqeEdroOI/Dq0yQjBxH6bRgaNHMb3zALD0JrKtb6AYPZeewJu5Y3wxDydmE3GGCI3fhunpxPR0408/gS/5GEbR7fB0xzsQ0qJh8IeomY0uuevN2NVjt0ypEi9Mup2Wp7Map5eEtRKWWUSrkmCu8TJMTxe2GnKtjSmLJJ5CjxtL3fAlGvq/hzezHgBbi9I48H0CQzeR77+H1h2fpXHwBqKDP8Mo7ESi4Ch+/MmH0Ev9WEYnxciZk+2iN9b+v2t7FtO/gGzzNe6AsrMYVaWlVUZQzQSO8JBvuAhPbhPektsGntxGPNkNIG30Uh/h0d+BlLUJ/KkH0mwcdd3pNC2kW64lMftj2FoD4bE/Q35PtYxRGgd+wInaOpYHY7y/a31NtvHgBfy0/GHWZ9r4+q6zuVfuHTYCKKqt2HoUgUSxMiRTriJVqzFSW3Xd5mzr66kEl1IKnkgg+YAbYjFayTe5yn7qIp9i53HUIHtSLuGvy7RPK3NismqlfgLJh1HtLOLZfwVc601xSvxyzwIunh9GVxXmLX09o5UQzYmbKVTKNUur7F9MvuFiysGlqHYOxcqSyoxRslX+ac97yTe4rrpetZgnlIqtN9VkqfgW1f7/7NYz+MDmK9lRaOCWseP47YZx8k2XunWysqhmDInC+Lx/JT7n00h18tSpCQykyyTsgOvqVxcbfdln8GbWoZpxLE83qc73IrBRnCL56AVumszTbgbSQa3EsIxWABw1iGLnamGEhxJzUARo5UH0Yi96eQhpFRgfnLIwPGUNYeZC+YVRdww+Hm9nY66FHYVG/OnHUSujVLyToae8MZcvPlHkTRuuq7bdOIpdJGsbGKqgLCY9Dcton0butVN3CtONMm9mLaoZZ9hsYFOuhSubd/H9J/voH92DVh5GtTIUvIu5uXQtFa0R1Upg2g6V/Ahl/3Gk264j3fEOAEoB9w3othpCVqnUMtpxVG+1rDWEh2/CKGxDcYpUAktrSj0y8muEU+bHQ6fxmbWdAMwf+yH/vvAx1OwmjMI2jFIv0aEba4agZsbRSwcOXU7FUSV3zRyjpzKPe+Lz8aiCvmSJm3dNauM/bI4z5D2XVPs7iEcu5/bCqyhZDlL1EZv3BZKzPlhL+/veIN/cfQ47Pa8CQEiTQvQ8ck1XIIVOKH4n/tRjSKFjebrZrrkDOjz6B7TKKLbRwrqhyQWtsfwUcjc60GSR8xv6uevU39O5+0v4U4/hKD4KjReT7P5HhhvegMDBH7ujdp83ux5P/nlEaRStEsNT3E7WfxLJrr/HUfwECpuZV364ll5x8nizz2J6Z5NrvgKjtBvFzlHxzcf0zZvWdltbP8PVz7yZG9aMkipZNQtONePIqhWnlfopF8ax9UbK/uMR1QG/o9CAZsYJpB5hW7mbTPQS9MqIG7Yy01hSIWH6GMmajOVM3v7H7dzRkwShkup8N+AgyjE33j/l6KrvL72H17dt47fDSzn76Xdx3WML+PmzCT7acwUPpI/nZ+smrZ9Ux9+Rp4HXr38jPfEKTpXAVSvDtsHdtXSZ1jfye/uDPOX/QM0lzTVNnteeb7ioRkL+1COo1cU7xc4j1QAjObcf12ZcK+u5bCsSalvPQrHbsKvhCFFJgLRQqx5XT76J8+e6coV8foZCV9DlzZAcfg5fZi2O4ifd8S6eNM/lF1vccauVhxCVOLtLEVYP24yVNCreeQSSD2LkNteUylRyR9F5rHwen99+IV979WyWz1vKOze+lu2FRp7szzJc9FTrlEWtxLD1JpKmxubEZFhpNFfhY3f2kihafP7+PWxMGAgzBaVRJALTM4tQ7C+oVgpbb0KqAZKzPsBGewVrrHOp+Be7i+bSVbCKrEwjdyEtN+yA4OGES8B6eQDFLiARPDA+i4jdT75io5X6ad35eVr6voooDmDgKtiJMN3SYAwHjZ2FIIaq8JvhpWiVMRRZ4aY9s12yFDrfXK+wbijPYFHHkiqKlUU4RZKmwbL2EOhhfhq/knT725GKMS0sM7GBwKi43siHt1xG2TsHf/pJVDPOM+Me+q0uAN7UtoUV2R/Q2P9dhLTYMC75zpPDjFTCqGaCH68dRbUSJJ0GyqETa+ErqYVIdP0Die6PYHpnA2B52pBKldzTq/HmNxMZ+Q0AFd8C5JQwUTF6LuuTYXK2wQbOwZbuvPXJnPsgGuCoAVQ7SyFyNo7ixZd+mkPFUd8t8+fBTq5Y1MCNb1jI/EYvN22ZJPebnhvnrh1pKsFl3JM5mW+sU7n+Kdf1laoPqYVqaXfESyxu9nLS3EnNXw6egOmfT2LOJylEzgLA1huRwL9uWsy7N16NioXilHhsxMMNa0Zr904j96r79Y3jHsKRglHPaQAozuTWqhu3R7grNp9g1m38UmA5emkPkZFfI32dJOZ8nJT/VD6yeg4P9kvG532euBXmztgCLl17Hb8rrMQ02rH1RoqRsymFVuBUB1E5uJyKEuI3w0v56BbXilszKoib7hrAzc8nsIwWwCUtpbro5KQ3k8mMsj7uwdQmrf0bB0+s/f8/O5fw5Kjb5g/2DKCXB4lbQSSCdMnmsd2u9bwr6VpfttFKpu0tSATPFhcigVzj5bX8tmoXsSdwGV95dTendbryWw5cMi/CSM7kxsETifnOpBJYwmj3JxmpBOkZL+Kobl2EU6RJd+X/UfwaPrW6le89PcbHH5oMuTh6A6mOd5Gc9UHKoVOw9RZKwRPx5jbSMPCD2i4LRw0yknUnfF8xwvZ8A48musk4EZdkpY1WHqIUWkGm9c1u+5lJVCtFwfFhodHkmyTQpvYTyFk6p5g3o5X6ybZcw2DW5D8eG+TW3e6E1irD6E6GsYofRcBftiTItVwNQCD1KEZhB44awNabKVsO33x8iKFMhV8OLWcPx7Oszc9bT2xm5fImzuwK4tUE9+521wNUK4tZGGFrNsTf37qLz963h1h1nN7Rk6Q3WebBXWkKpsO2fCO6NY5IPEMpdArp9rchqla86XVJ7ZlMKx9Yu5zPPjDEkNONamdRzXhNAf1gg8MzQ7kamfkyq+m1FzFSCTJqhimk+7hzyxB522CoHKRRL7ErUSTQ/5NamwVG/0xYK7ODE2shlhajWAvXzYl6uD8+lyIu6T0xFiIdPo985FzWDBU5qd0PCMbKPqxyCmFmiJc1TugIE/GoPJGeQzm43CX3qWG5qrcQdNw5PVAKMew5A9VKIqTFjpyfcNdFSFRObpgMywD0Ztw3z46YUdRKjJ2xBAHVIu2EmAnL243UQsSa38Ld+QsYUpYgFdebUmWJoVIQKR2KajOfe3Cs1l8A5cASytVdZB98eiEXrXk7ZUdFdXKoVgbLaCPd/g6k0FnVG+aB5CI8+wl97QtHldx3mnN4PNnFG5Y2EjBUvnhxN4s7Grm3cB6pjnfS5NOI5d0BOUG2PeN7b2PLlW12p8osbPLR7Nd463Ov43eV97J6sMiXHurHdmTNss07Bomixe50hZ5CE+tKywC4r18nXrB407ImBEzrBMsz6dKvyXTyPGftJUPFhm/0ncUeqwvTaK9NaIDbkydh6008Yl1BT76B23uSIBQ+vmslv0u9ipZwiO9s9HGr8x7XEvAsA6EQn/1Jxquu93je5Ht7TmdNphPbkWyJFYh4VS6aG+bObUkSVhBHDWAUtiOw6a80ExQ55vgybM8GuLt3sj5XrziDguOS0cZsC08Ou9a3llqNUdzBfcnFtTYfyLjkGPFMklwlsJi+WZ/kUxtP4UPbr6PQcCFZy2BHpZvGuZfznlPbOKEtwMfO6eDs7iAfOr2Nyxe5VttPB0/B6nB3EQQ9KkFDIZY3awtfil3ALwpsyjVz445GNo5On3iTMhxfc3EHshUesq6mt/UjOAgiw79AtXNsTSlsiRUxVIEiBH+36bX8ZmQ5A5WoqwStNAIb22jCroa6VDOJYqVIOSGCHnXawpZX1ylIt90KDRfSYx3PJ+7qRQGytoeMDKOVh/GToyJCXDwvwr07Uow7rWSbX4Ne2oM395wbhhEKG0cLPLo7w/dXj7AtXmJJ62SI5e0ntfC5C7tY0OhlS9Jte7Mwgs9OsC4eYFbYQAI9464i9OnuVC6aDkFD5bbYItKiFTnragbD1+DojWRa30wfx/O/z0cA2F6dS35d4dvPuWQri4PoxV0APDTk446eJDkRrcn1aPFUAHaWWvGUBwhrZZKmgar5UIXkj8/txiMmLWi/NUxULxPwhZBqABuXOAu2+/fMriCmVLk/fSJ5W6e3GOV5eTr9/ksoWZIzu0J0hQ1iph9foQfDHOGp1CxO6AwT8qhsiRX5x9t2IYVnWlhGVA0vBcmP+k9mtBKk15wM+Q6WQpw2K4Tp7WZ5YPpW1R1pty33lBpRZIV5uhvaiVX8mLakYO69rfje3ZJ/3zSPW7YVcKqWO8AzmXY+uPlyvrXnAjaNFfnWE5NhIltvJlG0WNzsZUVnkAUtYTK2D13mUaw0thbB8s0hNv8L/HB7Oz/tm1/b+XMoOKrk/omeV7O4vZm2oHtiTdCj8oM3n8hJJ1xFJbCUJr/G6sEc33hskDUDbshkLG8Sy5vkym4lpZTc9FwMW8JZ3UH8usqY1ch9AwZffWSQdUN5xvImjupq3d/3NvHM0ORDSn9MnMFtyVNZU3XbrzouSqNPYyw/+WCEnNJZ39p9Fr983iVKy5gk/VjepOTofHngGpKz/wlHi1AIrmB9po1vbnSJY8L63R4v0ZcsMZSzOa7ZxzevmIumCHYmStyzI8Xb/rCdgXSZ7Sn4yL1pvvLwQC28ADBeMNmVLLOo0cvKE5qxHMmNz8QoGd148lsA+MPQ/Fr63aUwj/RlebBwBv/Vdx5zmhsozP84dyvvI+TV2ZRwJ9ob2rZhGW38cmApAOuHc4zm3AlTMKfvJtlebKTg6OzMejEduOqZt3CX9aZpaYQQ/MsFXVx5XAPdEQ/L2/zMChuoUw6xaAnojOXN2hYzYRcIKgWSppeZ+MX6MSr2dDnKlsOXHxrgy48M8uH7C1y/e4W7Gwa4b7dkIFPhuhOb+cUbF/HfV8zhzK4gW7NhNHO8tv/a1pqwq9tlVSuBqMQZLgcJe/Y+O8Cruoowr3fzT3f2UbIkF8+P0ODTGKw0o5f2EFJLFAnyxmVNVGzJu/68gzfcPbndrlJ9yGiwqjg3jhao2JKlLXvHzztCBrszkopvAU25x9AUyYlz5/L1S+egKYLtcXdMmbYrV7ZsEzJUEqaPP5rv4r7CObzzz31sjxfJBk7muqfP5PZtGQYyZdJlG48q+OIl3WzPuKGfp7fvxJt+ivWFBaQtL8+O5Pnfje5vOaI8n3ONpDXJRiJqjnm+FFnL4Nrlbtx4gbp9mvyr0+68Cnq9IASmcJV4uqLQFtS5ZH4EAfxnzyLesP6NFB2dv2xJ8N6b3bj8rLDB9VfPY9wMYogyt40t5A+jxzOv0U+T31V6A5mKa7ljY9uWG+93yoyZIa4fOJuFS68BYHdusj/ntnejKgJbbyAg8kxFrOzy0Y6iOyZOD7uhncGSn99siHHdqu1sG5/+QNT26jMbXk1M44tw98VsyrVy+0AIr6bwfKxIqWogmCJAtmxzSkeAL1zczc+uO4WiDKBaOWQl5W7oAAqWO192l6JkjUUcKo7qVsjxgsUFc/feIz1hLSWKFtmyzRN73FVnTXFd/A/f3ouUkvmNXjpCBg/uSnP5wigLG91GCxpuI05gIF2hqX0p39pxPg/E59KadSf/7IhBf15wQ/wUzpsb4AOnt+HVlBrh7AuvP2kB33t6lDsXvJfTZ3XWrieKrjLYNl7EciSaInjeezUf2dJXS7MrUaLFr5Eq2dyxLUnedIj6NFRFMDticPOWyd0c/+/+PWQrDpYj6UuViXgnB+buVJnBTIUVna4Fd/XiBm7dmqS77OcfZrvkN1wOUsGLQYkFc07mtrUFvjC+hLNnh9AUgaOEOXV+mC83lvnMXZPeUMx3JlkTFjf76Bkv1pRcseo+3rB6hDlRDxXFnQBl2yFRNLGkQqP/wMfKffq8zpobOoHWgM5wtoJUPEgUFKdASC1iK6188txOfr5+jHjB4uzuIH9+PkGDT+PkjgBdYQNFCH71XKym+BJFi63aZExTahHet6KVVy2I4NdVwh4f8xu9bBkKIVosjKL7gJJtNOGoIaTQUCtjaGaCZ5NdhIy9yV1XXPmfS/igGkvuCBlEvSprcvNZ4nGt3rISZFbY4MR2PxtGCuRsg+8Pns27FxcoB13luTNRqt6vM7/By8kdex8d2RE0SJZsniqdzAW4hOcPd6Orgq6wQX/alSFVco2d8YLpHlsIJIsWI/2pWlkTygTgqf4cqZJFxKuxuNlH2vJgScFromtAwn/vWMYJbX42jhZ4sDfLVf0rec+KThIFV2bh7wZWc1wgSVpfUNvyd3nTLkrSw69HT6cnF+KSWSYwjFZdjLXVIFgZSo7GqR0Bmvw6J1TbqCkcZklAr813gPkNHoQQ3Js/h98PL2Zjzl0HaAwYrOgMcutWd33EEa7n8f6bt3DDNfMRSH47tBit7RyWtPjQFcGd21K8u7oN/q0rXJJ0NJfAK45CSjbSqo6Ttjy0B3V6smFku+DMiEvuewo+dmTd+n/6nt3c9KZFhDwqw9kKj+12ZV4/XOCtyydDoJ2tczDUHVRsyavmh9k0WuRLQ2/m02f4SVccJBD1TtJwNNxEUPRiyCJJ4RqkI9lJLnqQN/HGvUbJvnFULXdHQktg//rlrO7JGNdrFjfwkbM6iHhULMehbEu2xIo8uCvN+XNCfOiMtppSuHh+hJPa/Xz7qrkA9GfKDGQs7o3Px0ZhOGsyr8HDmV0h+pJlkkWLRp+GV3OboyWgMZ43SZcs/rg5jpSS61Pv5PM7L+WSBVEWN/v47rNQkpOWVq5sEzAUKrbk+0+P8I+37aI/M3X1HnYlyyxr9XP27BAP7nIXTCY69tzqgxSLmryoApKl6e7X/TvTLKgqr7u3p7AcSXfEnVCXLXTd5k25llr6lOWhv+X9ZFrfxIXHdbO0xYct4fRZwWn5zol6WNY+6Xavi7t1umJRlMCUc0OLps3zYwXu2p7ihjWjjFVj2ZYzGSprDhz4BKKoV6t5aRNwFamFBKTqx0r30KQXCQaiXDA3zH9eNocb37CQf7mgi4hH5dG+DB+5vZcfrRnFtB3u2pbkzK4grQGNKxdFWdQ22QZ+fwPXHN+IX58k6QavRm/Rra+R34KDRtL0gVDA04ye24wiJDuLUUL7sNyf87yJBxNzeGrMbfvXHBfl0gURol6N+xILSLW/g95ilDHpxrX/+bxZfP7CWbztxGZ+NXAcv01dRrqi8Uhvmkf6MpwzO8QNr13AZ86fNU3OCZw7x50DP90+SRiBkGsNd0cM+tNuP6RKVu1vseplJUsWanVO2I4bl58VNpgb9fDXPRmSRatmNPz42oXY0u3vXrmYC5ccx79e1FWzjpOWj1hJI1myOG9OiOtOX1aTx+MJ1qzVE0IxCC3m6nOv4pOXn8+py86nFFhOIXo+QG0dqeRorKiuyVw8z7VQm3wanzl/FldUQ3gXzQ0Trs6P8xfNZkH38bUyNUVwUrufxc1uuSXbHXuKrJAtuOtEWcvg4vkRVEUwt8FDf7rC7nITjjDc/oaaxzZkNvLv/ddwe/5VDJuNLGnxESsqlJUGWo0ClhT0Zo2ahwRw/05XYf3y2RhV6qBnvMjDfW6U4fbx4wl71NruxeNb/Cxr8/HQgMIjsUZSVYNwKrk7DWfSWF1zGim7yj5TnuSCvtS+n5LeF476gmqLf/+E8J5TW2v/v39FKxfNi3D91fP4xLmTFvPpswJ89OwOlCmx0bef1MKXXjWbeQ1emv0auxIlRquW+H9cNpvfrlzEt6+ax5XHRVGEu2mq0T/ZwA0+jVTJ4quPDPKrZ2PsSVd4aMhDQluIIgRXHRclXbZr1r2UklzF4fTqYH1gV5qBTIW1g667FzRUYnmTRNFiQZOXyxZGmDBgI1UCeePSRr77mnl84/I5fPycTrrCBt+/Zh5nd7t5aorgU+d2MjtisG4oz+yIwRlVou6OePjY2R1sK0zuwHj/eScRinRSCq9AEYJ/OruDyxZGOLNr70WhL1w8GYtctc0die1BnX84o53OkEF7UCdfcfjls24YI+pVGc9PKq7/+esQioCu8OEfCN0a0ClZDtmKQ1FrI+IMk7J8tHW7Wz9bAnrtAROvrtTCEHdtT/G5+/ZgOXDO7BA/vnYhHzqjnQWtk2PG8EX3Kq/Bp9JXcslEM+MMlIK8++ZdfPuvQ+BpQrcz7C6GWZfu2GdYRg/P5/PbL+K5UVeOd53Siq4qRL2qS6z+pbxtw+uo6K6SCXpUzugKsXJ5E4ubvTzUm+HT9+zmW391Nwac1nngg947QgbXndjMtniFHyeu5b92n4+hue2xqMnHWN7k+bECo1XvJVW0yU+Qe9FmIgL2o7WjbIuXuOq4KNcuaWRnosxzIwWiVXJvCeh4FJdEwrMv59olTXg0hRVT5BsvmCT+P3tvHmbXUZ8Jv3XOuWvv3VdSa5dlSbZl2djYGANewAZsIJjBmAYS8mXyJRBIyHzDTGaSDBOeZDJkSL7M5MEJH0sAL3gh1zY2xthBXuR9kSzJkiVZ+9pqLb2v996zVH1/1Kk6VXXOuX271UaY8HsePbp971nq1Kl6663396tfTfnoKDhgdgE0lNKCTKe2StktngdCCCdbVhZjC38LQY6vmyAZ3v6q1MZF3fz8K5dyx/GC5gwci+CLV3TjJ791Pr6s9PMrlrRoeADwGf5vnMcHvRHGr7u2aUAmCfPyy1AK8WVVZx4WAfoWfBEDK/9CXiMIAw1OBfNxuuLgX/pW4dyuAjoKDkZrAYYYl6GGvSL6pyjGagHes6wFqzrzeP7IOCoexYtHx/HhNR3ymi8cHcMndn0OT9R45N7H13biogVFXLaoCWvn8Wf+2+f60B+GW7crs3K3uBoTzmJe3y4/VgX3Q8ONg/tZX6G6oDkd3B2L4L9fuwQnJlzJylvzDpa384b0nmUt+K9XL657/TWlAvYOVnF+qGcuaslKhtRVzOCq5a145vCYBBCAs7uqz6Sz6sBQFX3jHm46nzeEjvDY0WqApW2AGzB4lGFZew7NWQsTLu9cG0J2zgBsPcGB/pKFTVjamsWilgz6xj20haM2IUQ+19UrWmUI3p9dswSP7h1G1iZY1JrFJ9eV8MLRMfzROxeiWQGf961sQ9ZZDoSYu6KrTauH7pYs/uid8RWpwiY6P4jmofU4MM7LsKw9h7Xzi3jPshZ87ZlebAoHqq6ig5GKj/6JGi7uLmJ+UwYBZXjX0hbMm4a5J9n88Jz+SQ/fOXwDtveN4msfXIllTcXYsacUv8NN53fIKfmS1ghYMpk8hM+JZPRZCsDf3VSQRQXNKGAC+6faML8pgw2HxnDqsuvx+olOfG3HMtSYk8jcxTMeH3OxoDmDXEjZ2vNcbpt0+c2bDUmHEIKVHXn8fP8IKANuubALn7iwEwVnen7VHfaRuw+244L5EeDduLod92wfwIZDozgZ+kaGq75kisMVH/NcfQZ43co2FBwLr/RO4KVj43L2BwCjzVcg651CoCzOWdAUDdgbeydQC5h8Z9TOw6JTPLRS0Zm9XFTGmIURblknK2fKxYyNv7thBTryje2PXMxEdSaA8ai/DB1uAR+dtw/dtXG8PrkIk1ZJHvfpi0q4ekUrzi3p7SrIlsBAcCLoxqkJDwFjuOXCLhQzFnzKsHeyHYuKgG8VMTDlIWMRtOaKWN2Vx+1b+7E9XAuysiOPv7puKb618SS29E2CMuCaFfxZf+tt0WzywgXR/Z88wPFhsfIOQAjGOm9AtfdeHCYdOA/cjwIAFy0ovrXAfWFLfbb3jiXxDrqkNYevXLsYb+uuz3oArtm9eHQcvaMuHIvE2NjNazuxb7AiJQ8AaC/o1SJA+oqwLIJtj9b4tOpEKFG05Gw0Z20J7q15G6PVABUvwN6BClpyNpa2ZkEIwQ2r23Hbln457a1nKiu4ZkUrrlnRmnjce5a14huv/i6aczY+Ou1VdZvqfB9G2q5FacchBIxJcCKEoODY8t6XLmzCN146gYODU7j+3Db88ZXpA0YjJsDy9KSH109X8Y5lXVjWEQd2ALhuZSueOuIZ05wAACAASURBVDiGb9+0EgtbssjZFracmMTStqgN5TMEX9v1bhycase1F8bBQgziI6wTBTKBZ4eW4pPruvCPL5/EK8PzcO+xC1BjvAMlgXvesfCHV3TDp0xjta15Gz5l0keRdO6C5gzCdXJYU8onyjBJJma3tYDhQ6uj2UjOsbB2XgEbDo7Bp1xiOzJSQ1fRwarOPHYPVDBSiQbE61a2ynv+h3d14x2Lm7S2VOv+OEzouKi7CGwDrl/ZhifDfrA47LNucQ2c0ZcROG2gCnPXYvgNE+HLa7tsqNlUBLGZzu78xCopNQFAW5bAYj6OjfnoGzgX/9eiHQCAh/svQ3NLVL/tBSfWrwGeqmFo6R9j704Cj3KZ5bJFzegL+/Qzp1rw3nOAmlNC1WdYPLkHwcggrvrNz+L2rf34m2d4pM385gzOKxXw1fctxR/+lPtdFrfGn6mz4OC/X7sEf/NsL17pncD8pkwMk+yWVbhl+6dww2qOSSq4v36q8WycDYF7T0/PjQC+AcAG8L1yufx14/flAH4AYB6AIQCfLZfLvbELJZgaOTETuyJBXkiyRaFU8NrJSXQVHS20DQBWdOTxrZvO1b4TzLyYsTDlUWw/NYXVXXl0hZ1M6IA/fK0fj+wels7bpqwldep3L2vBf3zXQjywaxD/8vog9g9VsawtK+//0fM6sW5+06zYbj37zOVrZn1u1rbwlWsXY9LVnZ4rOnI4MpLDF69YgIxlYc9ABf+6b6TurKtRmx/6XE6MuxitBpIVJtkfvXMhPnf5AglQn71kHj57yTztmLxj4ZF+7iy7MYEVdxQcZG2C8viNWJM9ig1D8/B7y1vxL68P4qHXT+KIomkmyTIAZFinamIw3H6SM7nFCRKV+mwrGgQzACiFdVQqOjGfyc0XdiLnEAAEVy5txnc3ncKfXr0Ym/smsLF3ArtPT+DaFa34o3d2w1H6WjFj4/pz489h2nmlAu7+5GoUMxYODldxaLgmn22i68Pwc0vhFc4FQEGtJgSZ9lgCP9VkyCmdXQrrtrwOWc/+7AG8b3gYB4c/iVPDSyW4Pz6wFB/pakx1DnILUchEoLmsPYuJcMbz89OLceGCf4f3rL0Uv+OOo/eJ9QjAScni1qx0Ui8I3+3i1izWLShix6kpLEohru9Y0oxv/sZKPPTGUOKgRghBZ9GRQRpjYb6ZVZ3xCLJ6Ni249/T02AC+CeADAHoBbOrp6Xm4XC7vUg77ewB3lsvlO3p6eq4D8L8A/PZ01/76B5bNqLCzMcEyTox7+Mia6RszwNn++aUCbl7bib95lo/MVyqDiej0J8Y9nFA82a05G00h8LRkbeQcCx1hYzw0XJOOIoAPaqu6ZvayfhG2oiNepk9c2IWb13bKgemLV3TjU5evQJEmx6DPxFpyNnI2kaFlnXVmMo5F4Fj12W5eAfRCJt65LUKwuDWLfaMO3qDnYEl7gJxj4fpz23Dvdt7BW3M2xmpBQ5KJsKbwXs8fHUNLzsbKhHq8YkkzvvTObpzbmY85lutZZyGDtpyNj13QGSNDFy1owkULohnENStaYRGCg0NVMABjVR/vWd4i5aPZmBi4vvCObqzfP4L5YlC3Mqi2vj08ysbAOf9t2tzqAtxl3pUztOFhLs0dHKriyGQJk0EG5ZMXoBYQNCVEO6WZKvUUM7Z0NDMQ5DvXwnayuHltF25VUrVnwnexuiuvRbPdcmEXptxAm1Gatqg1iz98Z3fq710FB0NToTIw5qKj4OCcuQZ3AFcA2F8ulw8CQE9Pz48AfAyACu5rAXw5/LwBwEON3PyC+cnT77m0JW05XLeyDWvnFfD+c9umPwGcHfztDcvldAgArlgaMSaVAf3BOxbgO+HK1nM78yiGzL05K/TEqNHUe9m/7GbOeNbMb8ZAwoKy2Vx3XlMGu8NrdSZMnWdiKrjnUwBtUUsWB4aqyNpEstCPrOmQ4L6yI4fXTk7NaFYpgOTAUA1XL29JPDdjW/jAqsYIhn4ewfc/vgqN4LMILBCzz+asjbcnhFjOxs6fV5C+q0QjFkDqt3EB7iKGe67s4HANgIX1+f+MJ6eGANRkH2zExPsT/bWkBHqcPy8Zp96zvAWHR2r4L1ct0vrHpQubcOnCcxLPadQ6CxnsHaxgrBZg28lJ3HR+JzrytpSEG7FGetJiAGoKw14A7zSO2QbgE+DSzccBtPT09HSVy2UtoXRPT8/nAXweAMrlMkqlEkxzHCfx+zOxv/7ovOkPSrB2ygDwRRmXrlwUAzgAuGxlN644VUPvaBXLFi4ALA4Qi0ttKJVKWDblAOCREeuWzkepNPPO/ctoc/melnScwstHOAM7Z2EJpVLcz9KoZZs9IIwHXzivE6VSXL5b0z2Jl44dQ0chg7bmIkqlEkoA/uIGC32jFYABr508ijWL5zVclsV+DqKbXL2me87b8ExthZcFcBzXrp6HhQvmT3v8L9Jo5v+BVVyCUnb2fSGt/S2Z34Wvr1qMv/r5HlyxamHD7680DAAnMK85J9vDOV19GJp0sXLxgvjxpRK+cG0Xbn77CnS3zs0MXH2mxV3jeLl3Aq8PMQQMuOmSZZg3rxl/cn3jhKMRcE+6mpl38k8A/FNPT8+/B/AsgOMAYvOzcrn8XQDfFdcYGIg7B0qlEpK+P9s2OKhvfCCiYjLeJP7bVQvAAAwMDODIENcSF+YCDAwMwHIVDZdUfymfbTY2l+8pqyypdifHzmhG4CkrWGuTYxgYiEcXdDg+KAMGpzwQ35XPceP58zAwMICAMlzYuQKdVrXhsviVKDR0VTM96++5FQFWd+Xx8XULznpZ4tYNjPkAZl8us/11V4+jZhfgTo0jW/DxtesWA2j8/S3MejivVMCXruyW1/3b9y9BwFhi/fX394MQAgfAwMDcbIGpPlMBHtyA4r6tx7C4NYsOUsHAQBUXd0xzEcUaAfdeAEuVv5cA0PJolsvlPgA3A0BPT08zgE+Uy+W53xTwLNmlCdPav75+GTYcGkVHnucfESPgxQuacGJ8BCtDfUwN72o01OvfmnGHILcknXwmpkpmaZr5EiX0LOl+tkW06KlGrEm5TledtRu/KCtmbPz9jStQKrXIAY4xhu3bt2P16tUoFt98SfQXaRdO8oRaeeeyWZ0/rymDv7thufZdPT8FpRS2/eb1Z+HXODRcw2cuKiWqBtNZI+C+CcDqnp6ec8AZ+acB/KZ6QE9PTwnAULlcpgD+HDxy5lfCyp9aowGGsJWdeQngqn3u8vn41EVdUu9VY9Fn84L+LVheAcaZODGTTNRxpzuALS/14QPXXxc7Ro1iONP7CROa7XvPSQ5T/WWw4eFhPPPMM9i3bx9uueWW6U94C9qZ+mwatTcb3NU2enVK6PN0Nm3LLpfLPoAvAfg5gDf4V+WdPT09/6Onp+em8LD3AtjT09OzF8ACAF+bVWl+CS3nWDNyrGVsS2NuwsF18YJfLaY0l5a3eTO0CJC1z3wA7FnXhUvHt+CNnTsSfy9kLLm+IH+GMwVhtkXww0+swn84w7j/N9PE5u6VSmWaI9Pttddew2233TZXRZpTG3HaZxQhcyYWBI1nZ5yNiYVr53bmEsNqG7GGhrlyufwogEeN776qfL4fwP3meb82bk/84bswOjw0/YH/Rk0ArC2WrJ+h/dbb5uHWZ/hnSiksKw7gi1uzGJzykSUs9ZiZWmv+rK8JrGuibtkMtmoz7dlnn52r4sy5+XXi6xsx13VRLpexatUqXHllPK23apTSur83Yjt37gRjDOvWrYv9lnMsfGRNOy5qYKFmmp313DL/FqyQsROlnV8bNyGNvBmqVRrDEusfejeux0svvTT3Nz4LNjk5iRdeeCEVeMQAdibg/stsl5wBEALAt7/9bQwNDWHjxo3THjsXzP3JJ5/EU089lXqtz7+jG+9a2thizST7Nbj/2s66CYfqmzH8+X7yopol4ZoDb2oc4+Nzs6DmbNvhw4exefPmaaNjzga4sy0vgW567k29xxy5TxqyuZRlzEi8ubK3DLgzxjAyMjL9gb+2t5ydDeYuVpCyIHjT9dNflInnmK6fzIWkMNMBgj71CNgj/3LG9zUtm83ibW97G+bNm91altlaUh0ODw/j+eefTyUUaTbT4xu1twy4b926FXfeeSf6+/t/Yfe8++678fOf//wXdr+3ijHGsGHDhjN6F/TZf0XwuZvAalUZcpZ5E6SrNOBeO7+If/zIOaA0HdxF6OBbhdmL5xgdTY5CFoA8F8x9xtdgFBg4NeezhiAIZhy1curUKXz3u9/F1NTs02ckgfuDDz6ILVu24MSJEzM6/80iF2cV3J966qmGR62+Ph5aPzY2BsYYNm3adEYvpxEbHBzEnj173tR7vBXN8zxs2LAB+/fvn/U12JOP8A/9J2XO8auWz30YYb2Os6Q1A0pp4jFsfAy9hw/h6aefxr59+xLOPvt24MAB3H333ahWq3jwwQclqE8H7meDuYNSwK0B43O7/EWEJM7EEb9p0yZUq1WJKbOxpDYzOTmZ+ptptVq0uO5XEtx37NiB3bt3z/i8U6dO4aWXXsLjjz8+o/P27duHQ4cONXTsr6LT6eWXX56TwUoMqmc0nWwJc4uMjeBt3U340ju78XuXzc0yebWz1Cuj+C2pc9H/9Flsf+BHAPhgNtfm+/4ZzwieeeYZDA4OYu/evTh27BhOneI5juaSuU9MTMjkXEnXatjEgNJ/ErfeeiteeOGFmZ2feEkKxphk7o2WyXX5auJsdva5npIGSHH/RsC6Wo1Wzv5KgvtsjDEmK1GtoEbssccew09/+tOGjlVH1rNp69evx8MPPzwn19q4ceOcyEwiTvpMwJ208rwibGwEtkXwgVXtyNhz0xx37twpP9frOPXAfdLJ4lCmOO01kuz+++/HXXfdVfeYLVu24N57753RdU3r7uZZBY8cOQIgep65BPdnn302sc3MFtz901yy2Lx588zOTzDxXizLqsvct27dqrF0MVhnMrMPnazXJn4N7qHNJq75FxHSdSYLPebSdu/ejcOHD8/6/DfeeGPOn2VOmHsI7jOZpj/11FO49dZbpz1OleseeOCB1EU39cD9UOs80HCfzZk+Z19fH4aG6q9rGBoaQrVaPaM23NzMk2KNjfE9Q0U5JyYmEss8G1lmfHw8ceYyc3Dndez1n5rZefUuGT7HdMz9ueeew/33R8tw5uJ5fg3uDdhMwZ0QIsF9LrRDYbt27cLJkyfl32+2nv+LsLGxMTz++ON49NFHpz84NEoptmzZgmPHjqUeM1Nwn5ycjA9QxTAmeWKs4bLt2JG84rSeUUpT5Q/RqcznYL4P1+ILkjKZzJsSzSAA+UzasOg7AijUcorrqzYb5j45OVlXgmjYwmu4g6dndl4dE+9vpg5VIcuciVPTrJOZXuvfBLjPxuZipZ1qU1NTeOKJJ/DQQ1Ea+l8W5j5T27dvn3R0ivpJm6Yn2cDAAJ5//nk89thjqccIcG9Ui96xYwd++tOf6o1YvLpg9sD54IMP4tVXX41932hnSWXublWy9mw2AndK5y7boxhw0sB9ZGRk2nuJfpAkkyW985kyd8YYpqam5hbch6aP6a5Wq3jkkUemJViNyjKmiXY7G3AXxNI8Xu0Lvwb30GYjy8yl1x8Aenv5joC5XJQt8K3K3B977DHJ1EWjmUnjEQBRz58xU+bueR4YY/qAycJ3dwYN+9ixY3jxxRdj3585uNcQEAIwhqztyOP27t2Le++994zaxoEDB3DrrbfKyArRhu+44w5N277zzjtxzz334NChQ9OGnIpr+L4vdeR64C7+HxkZwXPPPZcK1JVKBZTSOQV3byTunDVtx44dOHjwILZu3TrNJdNlmf3796eSD69Wix3faJsReEUphed5ckYqZgONXutXPloG+OUA96TpnQpEb9VFLgKUZiIrNPKsEtyHG1tZJ+6vgaJ4d7Ng7tMBS6PtIhXcazVQYsFmFI5FtMVBjDGtI8/Utm3bpv2txqYnRTL99Kc/1RyvL7/8Mp57jq/0NOshCAI0NTXBtm1MTMRzjJvg/vDDD2Pr1q2pspUYgJLqe9bgPjl9hJDoh77vY3JyUs5ER0ZG8IMf/EBKTmllGB4exqOPPopDhw4lHiNax5ky9w0bNuDhhx/G4OCg1iYaaX/ValUOxL8Gd8VE5c2VLCOup74UFdzfrBVkc2Xj4+M4ePBg7PvZMPdGGuZU2On9BkFO3F8Dd/HufB9TU1O47777Gg4NnK6Mc8LcLQsWY7AAHDp0CJOTk9NKKY1YPa22kWtv3LhRMtqk9m/bNvL5fOLMyzxesPu0pGnm7KLetaa1cKbmkeheaf3KcRz5+09+8hM8+uij8DwPp0+fTgzNJEbCOTXevF59poF70auB0eQ2pDJ3sRLYdd1Zae4ip/6vLLjP1ERsq/g8F5YUn6oC0ZsR59yINdqB7r//fjzyyCOx41WtuFFrpKFVBHNvsHzimposI8rk+9i9ezdOnDiB1157raHrNQLuSWFuu3btwre+9S1NxlDLJ61WRUAIbEZxaoQD4AsvvCDB/UxIRRLbVq3RUN20cti2jUKhkAju1JhpTedgNZm7etysmLvjSEc1gNSIIgHuQRBoAGr6esR7NH1w4tnVsOkkS5Nlin4NSCEu4l7me5upxFOtVpHP52FZ1q8uuM+UuTPGEpn2mZi4jlrJZ4u5Hz16VDrS6kWsqCZAx2wks2k0DTF34cCbIbjrzD3S3GfqIG8E3JMWqDz77LPwPE9OocV7VdsUAMCNZBlhjuNIqePNZO4iZn22ZlkWcrlcss+kmhwkYJbh2LFjuOeeeySwJs2UZwXudgaeFUmfaQ5jVZYRbSMJ3EUZTOau9t0ZM3fGwEAAN9nnlBapN1twt21bHn/w4MEzkvxiZZ2zK/2C7M1g7ia4e56nTf3m6j5Hjx6dNp3oQw89hHvuuUd+nomZM4zZDEpmw6zVatrz+74PN7yPT+t3cMYY+vv7kzV3wQYDT5vqNmLTHUcpTQR3s2Oqz6p+nhgfw67Oxdq5xWLxTWHuSc/S6HurJ8skRXuxlHozr/PKK69gYGAAu3bt0sqolnW2zD1QJKDpwF19J7VaLTVKqx5zr9dWkgA5QwNQQoCURYyzYe47d+7E9u3bte9UcO/v70dfXx9uv/126U+ZCzvr4D5T4FS992kNjDEmp5RpvyeVQfwvIiIKhULqfRhjePrppxtKEiTsoYcewssvv9zw8UllFDY0NCRThQrQUkGBMTYrcFenuowxfOc738GTTz4pfxcdLBt48MNqYeOjoPd8G8zXO92BAwdw7733SgaoAs6kH2B3+8I3jbknyTImaKj1o3bIZ/byFBWTGX0bRXHMXDL3JJanLripZ/VkmaQV1mnlNq8jFkeJ9zUTWWZ0dDT5NxoAjgMaJnbu7OycNtRTrRvXdWWfNuVGc/Yvyr1t27YYqGpFSmDuDg3ACEmVZRpl7owxvPzyyxgcHMSTTz6Jp59+WjteBffjx4/Ld/4rxdxnnDq0AeZ+4sQJfP/739c0vXoN02RyAoyEwyPpPtVqFdu3b5+RRnomZpbhrrvuwt133w0gGdyDaVLZjoyM4NZbb43JAOIcQohsaGoUhwD3Zq8mow5Y+QdgGx4F26yHJZqgrjL3R0ddPLn0Qkz6wYxXHDcC7rZtxxa3mPWUBu4EUTmaHX4NNfrkTMDdHHCTrnX69PQLfdLqyrZt5HI5Ce6MschRnVJuswwmMRJ9Lom533fffXKtwejoKO64445E5z4YBZxowJ03bx4GBgaSo1kUn4gAbpW5i3apyjKqifY2MDAQW/gW/P1XYs+g3tNhlA9AKbKMytyTzhefK5UKNm7cmDj7ppTCdV0J7qp1dnYm3nc2dtbBfTbMvVFHkNpJ6k2bpptuJpVR3COfj2+SPZ01+szqi64H1KLBmQspTCavmphxmOF3KjsVnVaN/xcdp9mrgorrCm2a6c8lAFGUSwX3yVDSocpziXoZHR2tO+uYTtMU4C4cc8IaBXdHAYub5/NMlWokz0wWASWVjRCCd7/73TO6llkfvu+nMncx6wJ4XpXbbrsNJ06caFiWSYpaMp2TjDGMjo7ixIkTcq2BOO/o0aPxm1AK2A6XPMDBvVqtJs6wkwIckjR3YUJzF+epM8TYmoQ9rytFivd7i1FeRjdZlkmS9NTzxW/f+973YvcQJmQjFdy7uroAnFkyM9POOriPj49j27Zticulk6wRh6qoeJW51wtVCp6OVmOqnahemgMBXEK6mYmlRd+Y5VIZSb0BSHVAqfdI05TVa5isR72PSO6UBO5FT2FP4hqGBi/qSI2WqVQqWL9+fSTpKDMMxhg8z8Mdd9yBp556CmnWCHO3LGta5p5WP+qG6FmPd3K1fZ7JDCMIAlx44YUy6VejTu+9e/dqf4uFYaaZ4C5mZkNDQ6AsPW+9+jktRl59nt27d0vy1NTEU0kI0Dp+/Lg87vTp0zyRW6i5MwXcgWTdXQX3JObu+z4opfjZz34GIN6GVWdyow5VYRZjoSxTP3EgpVS7bxp5TAozVbNSit8XL16sXefVV1/F66+/DlarIvjyZ8F2zDzR2lkH9507d+KZZ57B7bffHvttcnIylnNZnQ6J6Q3AmajYC1O8tDSnqBq9MTIyAjoW7VzjeR4WLuQ72L/jHe8AkNyZRQcoFovYvXu31PZMZ2ySmSzswIEDqFariezMLDMQz1iZxNx939fOj+VPaQDchangLsqRpYruKa7BksFd2NTUFDZt2oTdu3ejGh66i+Q1cBd+BLFqOMnOVJa57777ACC1fhwlFpvU+GCmgvumTZvq3r9eOc2yNcrcT58+rbXDeswdiL9fxliqLKNex0w3IMiLOmMGeB2IdihmSAJUh4aGJAn40Y9+xH02lMsy4gptbTzlswy33PUagr//ChiNYtMFiAOcBIr7u64L13XlTKFetEw9owkzW4sxLsvUogFiaGgotsah0WiZpGhA9d2INmkOAi+++CI2bNiAysAAMDEGNouEa2cd3JNCDqempvDaa6/h9ttvjzmXTAbR29uL06dP47777sOmTZtAKZ2WuQtG+tJLL+GRRx6RU0WANxxCCBYvXiwll3pTq1wuh/Xr10uHyWOPPYYf/vCHdTutCsKjo6P42c9+hieffDIGwJ7nJc4ezKlskuZugrs5W0hjn0lMUpWepDapTk8lGNYHd8ZYLJZ9c7ZVA3fB5Fpa0jcGbiRaxgR3+sRPYh0obfBUmTupRZEXwnp7e2MAMp2cJ8BJgLsoS29v77TsPZfLaUAHpM/+zI0rNHaZEt1kllM14ZhWAxmECWIlnkVlzC+88ILOygVzDx2qQn6QMevf/X+5ZKK0bUqp/F1t857nae/OdMg3Cu5mAAAAWODMnSnM/a677pKZRZMkI7Nu1M9JzF0OJJYlf0/LbOkL7Z81RgL0ZznLplaEaBz79+7Fs88+m9joTQZBKdWyHvq+ry3pTopwEABTq9V41jvo4E4p1So+CUzSAEbojfUAKCnB0+joaKzDep4nWbNaF2bekCRZplaraefMhrmLjp0I7kypVynL6LMjVe+slztbPLdYbg4gppebZawnjSRp7utfeBlWnVDRNM0dtQgo1HoghODIkSMIggB79+7F9773vZjEIOpqamoKd9xxB/bt2xcD982bN9eNoCKEoFgsxgBtOs0diMstquaeFmBggruow6QFQQLcVelEyGG7du2SIb0A8LMla6UsQ0h0XdnmRdksS9ab2h9EuyCExCRHlbmb9VTPaMJxFmPwLBv/9OrOxJzzScEcat3Ytq39Vo+5q5YG7kyUcRZO/PQepFhPT8+NAL4BwAbwvXK5/HXj92UA7gDQHh7zZ+VyufE8s6HVajUcPXoUTz/7bOoxSeCudmL1xVNKMTo6is7OzsSBgjHG47iVafhMwb0eA04DKLXRCgknm80mhjI2NzfLBE7CBLiLBpEky5jT67QojZ07d+LSSy+Vzlu1ns477zwcOXIkUfu31empYCdKXZizi5aWltQVieqiIlHOeiFhabHhjDFkMplEWWZvx0K0e27sHGEac1f6o1WrADmee761tVUSkL6+PjzyyCN4+9vfjj179qBSqeCNN97A1VdfHStntVoFpRQnT54EY0wDdwByB6Uky2azcBwnBmj1NHdhjDGduSt5fNJ8OGngnsTchSwjylWtVlEoFFAsFmPJzg63zAP8fjAABETWQQzclfKo8qNoT83NzanMXZShUaNbXwHrbAE57yLNoRqEC602b96Myy67TDtHZe5qYEcauE/H3M3jXnzxRW12K8F9pusK0ABz7+npsQF8E8CHAKwF8Jmenp61xmH/HUC5XC5fCuDTAP6/GZcE/GWmjZbqiGlOgdLAHYjAU23Ay5cv176rKiFaMwV38zctVGr/G2B74znI1Yapls8EG8aYnL6K6BfP8yS4i99EOWcC7uqxBw4c0O4rTNRBUshXhurM/ZvrrscjByOd3JRk6sksAsjV8M16ndQMQwP42oRvfetbskxJDtVxY7qeBu6WyraUcgidGIiiMLZs2SKB5+jRo9LvI8qhXlsAXkwyqsPKstmszClvOoCnY+6ALlmo+VLSZISJiQlkMhnZplRwN+9nphqemJhAsVhMzVUDJyOZOyEEmUwmaofC2cuSQ51FHbe3tycyd/GM9SSZWAh076FY+K5VJ6pOvYYpy6jgPp1DNWnWrLYHLcLHjw9+jVojsswVAPaXy+WD5XLZBfAjAB8zywtA7G7cBmBWO89Wq1XtIa9cdQ4APQFQI8xdbRSCLSY1ZvF/JQXc6y2uaQTc6YM/BH3wh7Fzk5j75ORkzCEKRFJAEAS47bbb8M///M8S3MW905h7PVlGPVZtgCbrsJRpMhDVhViaL2UZQnB4bBK1Wg0jIyMxcK8XMioYGqU0lnK4VqvF5KokFmk6zwkhMXAPDM3Z931t8DSfvHaqtwAAIABJREFUEQAsZcl+a2u0gbd6/9bWVuRyOQwODmr55c3FUkK2MZn7dODuODztsDqbSZMe6sky1Bgckp53fHxcG4hVWcYsp5n62TzXNGZzzd0KZVAxIwEQgVfCuxXldRxHSlRpTst64K6mGAAAajtgtRq2b98uz7MSiIz2DA3IMmp9TudQFZa24Yhbq+H7F1yDIxMzTzPdiCyzGICa5KQXwDuNY/4SwPqenp4/BtAE4P1JF+rp6fk8gM8DQLlcjv2eyWQ0bbYY6s0dHR2ykW3evBkf/vCHo2OKRbnYSPwtOoSQOkqlUkwHy2azMmSrYmdhUQoa5uWwLAuFQkHGnjZlMyiVSlpZhRauDiylUkl22ra2NrDqFEi+AMdxUCqV5KheKBTk9UQURrVa1Tq86CQCUIQ8A0SyDGMMXV1dsmGoMbKUUq0uM4PR1L9UKmm/tbS0yPKo3zc1Ncl3In6Xzx2ywLa2NmQLBQB8Ov/ggw/i9OnT+OAHP6jVV91Or3QMNWlUqVTCV7/6VWQyGfzFX/yFdi3xbsTzqJ/F+6u3D26pVJJ6tuu6KBaL8j1lsrwOWkBhK1KOCF8EoLW5BQsWoK+vD7VaTevYbW1tKJVKUuoQ5RHfC0tluuDvoKmpCbVaTctvLtq5aa2tkYO6s7NTto3m5mbYmeh49X2o779SqaCzs1O2MfGc7e3tsfpUZ1xdXV2YmJjAmjVrUiOdrKYmMDIEQghKpRIKhQIsy0KpVMKpcODt7OhA0+nklavNzc1oaWlBb2+vVs/t7e3IZrNSlkuzzs5ODAORj6ipBaOMaatHTeZuti1htm3LezU3N8sBLpfLaaCtviNxvtoOxDVU4qAaIwRVJ4spRmIYNJ01Au5Jmb1MKvsZALeXy+X/3dPT8y4AP+zp6VlXLpe1oa9cLn8XwHdTroHBwUGtoXsha+rv79calqrnmcud+/v7MTExIVnn5OQkBgYGZIgdwCv31ltvlayh4mSRCzxUrByGhobguq4mfwz/8FsYWPq/tLKKaaLKFNQVdwMDA2gbGwGIBd/3MTAwIF/68PAwBgYGtHu4rosHHnhAXstcpaj+rWbKu++++2TDUsP1RkZGtLoceflZiNfd39+vHTs1NSVZpTolFHllKpWK/H1ychIWok4wODiIdkW6EOU0y1/PySXqUl1iHgSBvKfneZqzcnh4WAMn9bf+/n4EQYBqtVo3CmVgYACVSkUOJiMjI/I9VasctD6V80CnIt+B2gZVbTrNuTk0xIFMbXsAbzOqU9z0L8yfP1/Wn5g5VatVTaoaGRlJlK6q1aps14ODg7Jc4+PjyE5GsymzPYk6HB4eRgf1eCQJiWZtZs5yIJLefN9Hb28vXNeVs4wkm/BpqLnz+rcsCxMTE/zeIVkYGhiom/o5CAK4rqu9i7GxMXieJ9MCp1l/fz9UfhxYFqYmp8D5KDdiwJJ6vYGBAc2Pom5Irj5z2sYdoo6FmjA+Pi7PS5txjIpV3tWaPH/RokWpz6haI7JML4Clyt9LEJddfg9AGQDK5fJLAPIAZjbMIIpykIVTpv5pGiFjLFFzF5qrGmYHcNYuGoiwipNBlvogjMfNM8Y0zZ0lbErRiCyDyYnEECYzzUHSQijRQQVTNjuyOGfv3r2pKy5FSCAABEqbTdL3kz6LOFxTBrPAQ8bE8T6JN6Px8XHtXdZjVBMihrgWdZik6Ay1DGm/ifMJIXUjbgBex6IexXO7rouNp/j7zuXzWrRMmk6ets2buKY5yJiRPPUWr6myDKVUMml1QFFlnkajZd544w3tN3HNSqWC5r3bJcTV09xVuUyAbTabTc306tpRtIyww4cP64MGS3+3lmVJnV4bQEYi4jSd5q5GxjHbATOc7LbRX9O0dVPWmonmLqwRWcYPy0dnEQrZCHPfBGB1T0/POQCOgztMf9M45iiA6wHc3tPTcwE4uNffGyzBgiDQFsxYoXc/eO2V1BhfFcCAKBRSdKA9e/Zgz549+OQnPwkAMppCNUb4xgzZEPRNh2qQAF7TgnutCniutmrTzH4odOLOzk5tVZ94DiAd3Ds6OlCpVOSCDrNexDOK5w0MgE6rTzHgCDM1d75qUB94vYTJ3fj4OJqamuQMoR64V4XmPjEGvyVZ11atHriLKJIkzT3pWNWnAegLlEixSeNxKiAn+SaSyqleW5g6pTevBeignMvlYNu2JC25XE76U8RxLS0tku2a4K7HuUflUH0DjDGsX78eu3fvBsDzBkHRxcUzmOWst44iyWrEBgWRrUWw4sOHD+P1c94OBoKbUzR3IHLCAkZ/WP8QsOJi+b2aW0c14YuRf9s2WK2ioSAx48yNZ0zS3GfqUNV8ZeGxVtqA6PJ6Dd4Mh2q5XPYBfAnAzwG8wb8q7+zp6fkfPT09N4WH/WcAn+vp6dkG4F4A/75cLs84difG3IVD6q5vaZWZFFUizHXdxFA4sdI1CdwBLjNkqZ/sUFXAa3BwUAPHtIYYCIdiHeYuwL2joyN2jHv0IID64G5aEnOXW3kpz5AG7p7n6SFsjIIE0eKZQ4cOYdu2bfBYJMtQSuGxeMNUs2oC9cFdlovFmVLicQa4m+9f7WhpxhhLBHcNpHL6jErtqJrTNYW5i/KbMsV0g4763CpzD4IoT724ZltbG2655RZ5/7RQSEopWJBcn4899pgEdgBorU1FzH00DEh47ZV4DLbytwBTc7Woaq5ly1BIALjwwgv5PRwHx5s70dfcgYmJydSBWwV3NdSW5KLsrZVKJTUlCKUUNVsZoG0H1GDulnHvtJXhgTJzUpm74zgNx7kTQoA+vi7GGk/exN4TqTJmEQrZUJx7GLP+qPHdV5XPuwC8Z8Z3N8wEasHcKbESI0mAyItfLBYxNTUlGY459T106BAApI7qFhiygY9arQbf9zU2VrP5Cztx4gQeeOABdHd3J+5ypDIDWpkQXyY+J8BZcktLSyLw1e67HVh+cSq4q2F5wkzmLqaxgL6xhgmO4rxTp06BMYb5U6M4XWwDeg+DHDmA3mI7hoaG5F6WQNQJnn76abw/oS9PTU1pDqDpJBIAoIZc1Ci4x/ROxoCJMdjNyU4qcQ3f92Pgrt2zUNTOsQ/vSyxbGqCpDkfVzLpIy/sDQDoKRXnVRW3CgVgsFjVwTwqFpJSmbh2n3r+lpQULKxHQ2OGep/TkcdALLomdK2Z2KrinmWfZmixz8cUXY+fOnVrbHp+ciA2clmXJPinqTl24SAr8+SmlGBgYQLFYjM1AAV6vt19wTfS3ZYMNngZal0T3qwPu+/Yp79+twQrbhxpJNONQSLcGZAqwLD35mayz0O9oRno1Ymd9hapq5tTPDkEnIAS1Wk3mmTYBQGU0IhTSZO5ioUixWExl7hka4ODBg3LZv3gxLy1cjccffxyHDx+GZVmaAyrNFxAIZjENc+/o6EhsAIJhpIF7ElgmpfyV4A4d3CmlKJVKaG1tleAuMkUumOJSCnFrqBFehz/+8Y91KSJ8roGBAXgJ7Y5SiryyjN+ZiiejUq2jOgma8AxJRinVOpqq2bquy52BL22I6aeqqT4NQkjyloR5nQHaSkbBRpi7GQe+YMGCWHnVsqjPJ96vqmH7vg/HcSTYJYXcpWnuQRBICaCetbS0gATRqmOxWve+4VriLlFicBTtsx5zD4gFpsgyQgJRWfj4hA7umUxGXo8QkuhMJEXuEB0YGMDIyEjddqP9HQTarByIfEnC1PZ48uRJ+VlNXbBt27ZZrVC1LEve3WLJx3pjfKCdDXP/pQN3bdQLwrwTxEKtVtOcSeo5AsyFsyVJlhHXLRQK6bKMMp0zO+yePXswNDSEzs7OxFWI4h5Sc69MiQNix4r/x8fH0dramvhSa7a+9N8Ed9FAli1bJr8zBz1NllGkE8F8LctCNpuV4NLX14fOYgE5GsUeiyx+5qIoleGMpmBo7pWn5edMSn5sYe21yZijN425e56nha+pdSNkGQImV9EmmQDYTCaT6HgHAOQN5r5/Z2LZ0sBdjfwBgA984ANYvny5zAB45ZVXyudRjY6NyPw2JrjbE2NwHEcydxX4gDi4a+tDGtBtLcsClJWsjvJYSQsMzfbJ+k8khtcBgE8IGFHC777NF7qrEVrjk1PaO3AcRz6PZVlob2+PzVpJoQgcOyT/FlFKpsVkJbcGU1G06jhU1XJShUmfOnVKtie7pkdpJUlMepx7CPTx4EEAgCf8Nm+G5v6LNJW533RwC6xQD/Ms3vlMcBejpNDIBVCp0TKmpYE7YQxZgwmZzhUxiKRFOqiyTD1wVyUAc0GLMMHcM8/+HEAc3MW1urq6cMkll8TqRQyU0iGmnOt5Hmi1AuLW5IDIGMPJkyexsKUo2QyhVIsu0GZVSt3smEhOFVAIItByaungnrMtFAIXFPoAmQbuQmITpkZIqKy4nhAkANUEd411mbKMsqDJZM1JYLJp0yZtwOro6MDHPvYxCYhXXHEFLr/8cu2eTYU8WGUSdvhMaty0V6nA2rsDth9FiySBu1pGtc3VWyylPgsU+WY6MU3o21Lq/OmPgKHkWArf0pm7dYoHEaig6Xp6gjS1r5nPqn0/HIXDLl26VB7TjXSyQF03ztxTZBkRVi3MdFaLa1vbNyWu6FZN/q7O/sCSmXt4SDBz4v7LCe4OGJZODslETxWHSy6iIakgJhqwGiYlQM2ULgghyOfziRVuMYqsku86CILYaJq08jFVlhFAkOB0oZSCHdgNGgJZ0ksVKRGyTzwIIL6cXzYmy8I111yDrq4uWS/CaawOHmrjcF0XdP8uWMePIJPJyLj+Wq2GNseRT00o1TJmqr4KleGc9JKnwXll6mrX0lfYteWyPNUq01eNqvUp0vQCiEUWqZ3OdV3utGMMdgobEscBEbhv375dOsujBzAcqiz5Xacxd8/zcPToUTmTTDrGbKOOzbeia/WqkqlK5h4EsBmFw2hDzF0tJ6UUbDI9flwYB3cFXOvUIZAgyzCmpcsFgEvPW8PLD0vT3JNkmSDQ5SbbIiBKW1efVZbZ0KPf//5oDeW8wMWNR3g67sBMnrdoqda+1TIJ80/yBVktLS06c08gfkCUUM/8XruvYO6qM9eI5BHmidDLt6Isk1GeJwgCuH3HZJSMYO4iPYDK3EUMtmCoglELkMpms/FdTpx4jm9hFpjMlyLKYo7iQspIC4nTHKqCaSeEwwVBAPrDb4L6XmqnP1Vog0WiHC6mEzjY+Awvt5IPWmWjKrjbtg21WbuuCwoLJHTIqfotUabkEJsFh6auPFQHvt8tFXDxQHz3nSxVwH0qvuOOMAHuDPzdqmlmhdXbq9YEdzHxt1MciNFx0PKb3HHHHXUdqtaK1fKz6TQz32Gzz68vMkemtTsT3Fm4h2dHbRJf/OIX0dnZGYE7pbAZhQ3WkOa+fv16jbknrdcwzXwOJ940NRMzCwnuiK96zIbP6IdLhAToiP4lQNOi0aAl7z8+CoREKZW5g2mgrOr0CAL5GzPBvXsJqPJOAX1GCgDenTxNVktLS0SewgEoiaGb55uyzMGDB2V4MFE3BFEimRYuXIiSz+vzLQ3uRSVSJAgCuCd6JUOKwD3O3AW4J8kyruvGwD0T+MhOjqeDO2PIGuBODP1N3CeNuWuae00H99iqtcoUKOJTeis8frDQAosQbYARS5RtQkD7ONASQhB85Q9gTY7HmLuQp5KYOyMEBEyCm5wJUF/q7IRRLWOmWV8AkGMUTYTJ/O6qqYOlU4mDe1eFM8m2jA2LMQRh3SQx93qWyNwB2Ck7D4njAD1E069WQPsjp1nMoXrBxfKzCe5ikM2Ee66+Z7QPK1aswMGDBzEyMqKlK1DNBHfqujwWPBz4xfUBrs7ajMEGGmLuYtYgrtswc1fLN83xVpiyQ5MNDSBybAKbBqHmrsgyiMDdohT5wIsHVUxOyFWjaRtbmGxb7VMk8GFBzF7irJqZ4a7Q25wfZogU+ztce2o/Vo2eMjcdk/VsEgo6qW/P+Mgjj+CZZzgxI24NRFyHRdhRKBRw1SRfAyDCjN+S4N6kJJTyfQ4sAjiscIuzis07exJzT5JlarUacrmc7DiZTAal6gRygZ8K7rnAQzYwIjWCOLjXk2WCo5EWHIRM+0ChFQcPHtR0Ykopd+aAxBbAtHqqrstBSnQCEdu+OEMko7ZoAJw+Acv36jJ3tcm5rgtKwgihUJaRzF1lN0EggV513AJRh3IIAEpjjigAyKiddCK+jWLRd3He8AmsbC7AYgy+sZFDo+A+MTGBfD6PXC7H/QfgbM7264D7KA+Vc1xlBWqtiuB0OriTtuQ9bVUwWdjSgrVDvVhUHceKFSswNjaGw4cPY+nSpUiyOHPnTmxNElTrkVI4io5fT3Pnp4bMfXw0pi8nmQnu9aQtcXw2m9VkGfMuNiFwKIXPoGvuYRtyXReFwIXNKIJAD3MtViei6Jo05m7EqmP7qwq4BxJAY8ydMQRNzfq1TOYegvv555+Pz3/+81g31BvOMpO1eTNCS80Zb66eJYp8xQKqPZ8ox1tWc2+tTeFda86RfweBjwAKuIfTFiHLqMxdMtIQxAS4iyyCKnN3HAdXndiDq07sSQX3DA2Q9Q12nTDS15VlJkYj5h6W/V/nrcLtt9+OoaEhOI4jc8uLnV7MKX3BjzsnRYk7OzvxqU99CjcMHpagK2Y3aidMZO7K9dzQkSSYu5px0Ar8RM193bp1el2EjD4TgntS2KHKYiwlFPLyrnAGwije37sT8zO2ltMjKVNjPZuYmEChUEA2m+XPQQjAAJsqUR/Gu3R3bePl3xKl6LUAMPU5bBtQkm3Zre3yc5oskyHA+47vRjFwcc45UdsWWzeaFmPujIM7YQzBP/1PsLFhDSytUJZJY+5me5KRWSMjEqjqWQyYpwF3y7KQz+ejOPeEY/iAFCAAQEk8FBLg/hmbUgRUl2XaalNyJpAK7rWqft/d26LfAj9acJewpwFt17OkmFKsqDPnZOjn8X1YYDHNPQiJVQzclePMzbotVZZhOlkQzyyEzbccc186MYT5Sna/wOcar5RlJLinM3cR5y5CIcUUXSzbBgA7CDC/Mo7FkyN1wT2jrBLzfT8WF5wky2ipEDwv0twNNiFmEyIyg4bnkUN7tcZqM4rVIye1c8VLam1txfz2dmSPHcDSca6fLm7mdaI2SgEYvlsD2fYK19yVtlH9yT1hPUfgfuedd/Ly+H7E8Gggo2U6Ozs19t7mTuHigaP4SNECWDK4a7LMeLSopLvIZ2uyc/ueVv4k5i7WOCSZyCMuwR2hLKPMxHJU79iucIApsyY71mmJxt6tligELw3cLfHMlGrJzdIy+sWYO+P5TywA2LYRbMdWDbhsxgMOGtHceTH4c/ZVanh1wUr5/apVqxLLYzLX6WQZQogmy5CE+QF59L6QuTN5jPo/gFTmvnhqNGL6aQ5VJf8PYRSYnDBkmRDcgzhzp+2dYVnCe6SAu/V/vqLcg5nKE2iIVbah16h/muAO6uPcMb7+pjWbM5g7f28itcfMAyHPMrgTMFiFKCNbEPi8YYsFAQa4q5v1qrnGTVkG4OAuNOpSLgJjuy/u+ANC5u4py4sTmPt0DtVA1dVdF56iVwtwtywLge9JRkxee1nfkYUxrBrRd+YRv7a0tABH9gFBgKWTw/jD7iZ0W/E4WblwiTJYg6dhEaKN/J7rcebO4ilSie9FLV1h7o7j4KMf/Wh0HICrT+xF+8tPgI2PxhxJAOAogJ9XwD0XxnDLMvv+tODe0dGBz3zmM7F7AFxzLxQKcubGjcFWmFrWKJ8A94xa92C6lkoIkFO21is24RMHeO6ZNFlGgnv47BdccIEsf5KpbckKk2YxpXPj+BENBG1GYbM6zN1A1qTZzxfZkAyfNY2E5W+vTYb3m16WEXKYNGOgtxmFQwP4LGLujDHtned9j4M7paBBgIJXQ8++V7Asa0WDgTI70cpQq0bHMIBNjmvgLuoyibkHYcjxdOCuEhUiZJlDe+V3ou/HEo/VY+6U4qLBXnxu5wa0ZuxkWQZCc8eM7eyCO2Owik1Y3JTnnvLTJzijFA6UcOFLxebhampSsS6HwCKIgbuwbDaL888/H1/4whdwXiGaWpMnHtLK0NnWijXDJ3DxyAlkFXa3ZMmSVFkmjf0Hbi3SOH0P+9qj/N+u60rmTn1fMmLLiJcVK2VVE3draWkBO7AnfMAcrGoFLARNtROq9WCHIYFq4/AsW9ZzHNx9iKZOlGgZx3HSc6Js24iMwYwBLoVcdO5KXHP11YCiuedI9OwAgMADUbhJErhns1nMmzcv8faUUhQKBS3dLAFgKxJX3gA9jwFgDI6tMHfGQLXjDObe1Cw7ncbclXcoIr2ETn799dfj93//93nY7mA/gq//V7DxqC50cOeDCyc4/Dt2/DAshQsLcI9p7uLvP/40oETFJK7poBSLFi3C7+98Ov5bCE4fP7gZH+tq0gaWJBYvHKrR+Uz328gyh5o7CZ/GczUgLQhwDwLQV5+HBYZ51XGgrUNq5mnMXc3cScAAFdwZkyDHEtI8UGOeEXOods2HQwOQt12hHCNIQFT+IPABxuKyDE0Hd1B+9yzlRFIDdxHCKmTet5osYwFAoQkfX70Mq0dPwaciBDGUZcKpXiWTk6xX2Ll7tsIa6o/JMsLa2tqks4cpiypsYzFQPpvFB3p3Imdb0qFqU8r3TjQXPUwD7pVqVYllZ9iwJNqNcGpqKpJl/CgiJQncZays8D2EP7e2tgJDp4HmFqCjxEPEwuXJVgq4W4zygVN9jjBqwWIMjqM/Cwk8CWBWQMGIvjt7ojGW6CtwKMV7112At61ZpUlcufB5IllmeuY+XeIxsb2bADPCdM0/Z+tN3aUUGRqAkCilsc2YLioQ6OBeKEp3oMbcAz9RlgE4IAk5kf38x8CB3WBhGCuQwNwBGckEIGTukXH9WgkZHOpH8Dd/AjJ4CmCME6PNL8jjk7I1Evm8Ces9wnIXfRdLs5Ym0zSTOMAI5i7/BgBPD9u1Q8Liy1kJA9yaNnDkAzfU3ClYtRrdV/FzEEpB/+X7cdmnWpU4SwCealuWJwqTpAkyqxnnnsTcMwDAmBwcSBgGqbYV6vN1MbFFUEodm+CuRuNpA8/4aOwZG/M+6XbWmTsKBcB2ML8yiolsHicq0Yie96NGYoL7yrHTsHwffX19mJyc1HY1yfuurnEqq9fMBi31vUxWMuZC4PLOakbLeC5IuPxbPoPSOMaqNdnpA2PqODo6KsHddV3s7OTJighMcKeyHGK5uA2+l2oul+MgaTtAvgBWrQDjcXA32aAd+FqcOyUE1LK5LGPrfMzyPFx++iAuyhGsdZMZZpI1mRELCBd0uDVZRmHZkB1ZZwDuZnnErj4R6DLYSofJxsA9nCERJdcHmB76acgylm2DKIm75Pd+5Gux6m1oLNqeqvNr+xdwJsmUaTlGhjRNmc/EeBIxNtQPjAwBR/aHoZ8hDz12UB6fmIqX8iRi5sYU4YNpxxHlHbQkKL/k8D5kh9QNMhiIkTtHMPcA4cBVmQIGT2sAVlBkGTVaiLS0RZLL2DDYEz8BqRogqfxNmM7cwaJ2FiTk8DEjskxwdmEhA8rfZ7gozwIDDZ9FWBDG08fSF9A64K7eW1kjQ3ZsiYVhv/VkGdsGsWzAtnHBUB8KvosKsaTE4DCKYsgCxGIJy7KwsLMDTb4Li1F4nofVq1fjsssukwCQCzx96jaoMHeTrSSAe1EAlSnLjA6DvP6qHrqobI81XnNlYxnNcsa3eJKn9RUrLy3LwuDoGF7pPhdA2JhefV5ew2IsFtlhQdkWjQaAZXNGWZlSwD15ybbNaNgYlYZILLBCE5dlDDZGfA85GuDaHIPje8iGKQRMnbP5d76k/V30EzJtMgbUqqB/8yfG83BglVNgw6Eq8+EoQGOCuzmTKBQKWhoBAqBVAaOM48hZDMBlmQz1AaWdOIwi0JicLssQQmDN646VzQqjtwDIfEjqrI+NDHJmJs5RolZisoy4jgq8Q3r7lZr78AAPp6OUr8gN24DKts0kZbxsfNA1nacAQIaNlM8qc09aN7BzC7IvPBGdnwBCNqWh5BQy92oF9H/+J+2YfODx56IUlCjXKSq7JFXj+5yK7yMnLWLMXfSNYCzy+4jV7XIdQPh9DNwtCw5jvM5CXJAzAbVP0SBcwBWdb1FaV3Mn2kCqyDJgsVW3bz3mLjamth1kGMXbwlWOKlC1eFxGEWxu3bp1uPw8vqpsmTeFdevW4YYbbpCLmICEVWJD/UDYKeuBeyHwcP2xnfjw0TCUygT30AmpDhzt7dG0cdyNFgMN5DkYlyrRIoZcLodVq1ZhzaJIi7cYA9m5Vfvb1NxbCZMZBRFQHqJn2wANwMIGqzZKkw3aQJy5gzfSrNGIZMxw4AO+h0/u34j3r1oun/lDV1+Fmw9sgtWs74maL8X1cAIAbpUPQur3lGKZOyGzT8L3kRQKqTH3EX11pcncTVkG4Pn5r13Bk3QRJ4PFE8MoVfn74MydAiRKs2oxps+4CGSucGHWkhW8ejRwdxXtWwd35tZA/8vvgt39rQjwlXuYEpq8tRoJozBj7pwMmTsI1MgTkShNHZ7U7RSlURrKIgnWrzjzFYkUAFYEFXRW9TQYFuNkSpY1IVrGYhzcAwHuCTOGvO9GzF15LhSaIplQpPQw2DapqNEyjM+QWAT24lreCM9N/+63X4qlS5cmMnezbC4IMmA6cw8PUWd5NBADrO78Vhm3utiOl1W5txLJw8tsMHfM3M6u5h52UBJKA+sGjyEb+Hx6+dFPAwBawkUmOdsCm5rAe9/7Xqzo5kB32eQArrvuOt6p//ZPYd9/G7+uCeBDAyCruP5tZgqUskwIKOePnECTF250bDpgwumikEu6KuMauPs0cnRNZfj0fV5FcSTmcjj//PNxw9rVUqO2GNVHe0WWEfahjI/rrruO/xH4nPlZNm/kIXNXG4oK7ny5OrR5wCTmAAAgAElEQVSt8CixZP4VMxeGBKcgAHwf7W4F53dFz7hq4QIsnBrV4r8BwHayWLRoUVROUWcJufMJpbhx5BjWDvfJZ9KY+1Yee66Bu+GwTWLu6q5RhAHw/UjLdBzcdHgrLhzi8cqenCHpkphP1OuS+EKm9o6wyFF5LGVlsiXqT7yPcGBjz61PBHf9XantIPzsZEDUmWe4poBSqskChCnnKyEzibIMY0AtBdxVoxSq03CxO4UPH9mmHUJAkTOAyTQhy1DKwGAlzhjygR9p7qospWTmFPKLKVmgNhXFzovyCnBnTIKxP8Jn0ZkWnolV+OtUM7GjpoK7CF8WW0wSk7nrmnuT4XswN7DR2LmyiAmMxQawAOGiq2/8JRq1s8vcMxFzB4AcDXDjkW14hzcOEuZ8KIYgmH31edAvf5YfbzitmO8B+9+Ac5qDhc0ogm/8JdjkBJjnAaNDQGk+0FFKD+0SYCUYqZiKKSZiwxEE+O3dz+Pmg69q4O4aL6RAfe0FS8eTMiU2G4SFSJYRQGSRSBZhNOCs3bJ4+aYBd4sxZEm0jBrgjZKyUB4xYn/Foijme5KpqKwC4fsgWR3cYVm45ZZbYoud2A/+ATF7/CdacilmaO6Zl54CYIC74RuYTpbh5Y7CWeUsUfzEwlmcFTF3m1L4lqG5m+Ce5e+QpjlUDeYOJZOkBHxloDUdqvKaAqTaOjRNWTB3gA/Yejuiic965RVX4P3HdqAz60Rlc+ODrmbFJkCRsQA+qzMlQ8KMNQQJ/ctmfAUzl2UMySk0hwYGcw8t40Szk0qUg0Y1S30XRjlUh6oXzv5EMj01a2ZU1hTmTqnsDzJiSmkrNJTG1HeorjYHeHI1VcYlNFmWsYxcOeLJKKXA8eRQ7iQ7y5p72NiUjrp0cpin6QwdWQLcbUajDiNepgAdY1mvTRmwYwvYpucAsSNSSxuQL8RZvSLLAABK3dH3gb6sXsbgBx5avSqyNNByS9cMiaMz8DQZSIA7q0WRAhbTX6QVhm59/sAruPrEHrPKIlnGsgHflyGGKgtIAnfVOHNnoSyjg7uUZXw/ql8VMAV7yea081Q2+uHDr+GqPqPsy6IFNPBcQNE/EeiyjGDpasdrzWcRfPNric9IwLMTatEyYLz84hoh4In7+FKjJpJNWYzq++USaA5VALBy+s5NAAd3Ke0ojmVGqQ7uoiwqW1cWHanrAuRg19SsOSgFCwb4gK0yVqm5G7Oq9j3bcN7ISdyydB4+i7HpwZ1YfItBGujykOeiyXfxif0bsWzBfF5OMEOWiZtNmdTT+fqK+DEO4+DuBgHGClHIKexMFINe5bIGMcrO32nE1AHIja8Ji8Ib/TCzqqjzJOZugmoNhIeAMio1dzE4VW0lLxbl/VY9vyVhDwMVLzRwNwYoS+3PVElHXScZnmlnGdzD25thdk4GyPJOJDq61ukkcw//D5mN6BDSuTc5Doj8IrYDOE5dzR0ASCnUthmvSJVR0nAjbShT8gULFqDLraDJq8I1Gm0H87WEWknM3WJMX6kXDmaZltbkabOUZSwOkHL6mS7LZAymRFXmbkzbI809kEAuGh59+jGwML+8CSAquJ8zPoC3DR7Tr3vFtUlPw833tEFURguFzzZ/ahRLqQu89opyu+h+BVAtSyjAOwjzPU2WASJHnY9IorvlllsQ3hCBVV+WsbJxcLcUcLeNNK6J4G44pwV7Xz1yEq1hamT57vMFLXcKB3d+b5W5W2ImQiwQW2fuTZufAwBkMw7arLAcysxp5YoVeGdGAY18PpwZ0hi4I5NFd2UMuYyoT6blZCLz42kWBHMPgoD7ehKZO0VHbRIBZRjIFpEPXxRZuSYawELAI1p0DgAWvVd5bRoN8qIP+0pu9jTmHguFBOGhkFSRZSRzt7EwDJgIKA3j3KPzW12ddAIGuBuzTG3WofQHUb+N7qYln6XhI98Es0RHEtNIMUXNZHgDQ7ScVwP3wGDw4XRt4dQI3nNiL649zjf7ZQ/dBfqn/zc/xnaATDauuYsRf143UGgC5ofbeIXyi/qypTNIAfdCoYBPn3wDXdUJmCpmB3wNtLKBz9mc60YLtRjTmMylA0f4h9b4HqkAeKO1bRDL0hYGqVPVGHOPyUsRc7cMXTBaWKQzdzY5AXbf98Gefzx8mHTmrhQk+bNppiyjMhUwLBsfBELJTZiWj4cGoM+tlys8AXAi50fMnWRSZBkaoL29HU1NTdDnMOCyjOFQJWLPVaW+LWUTcdutSZkRjGngLnw1scyLYbtvcau45cAmrPUmsGQidCBncxpTtakiy2gDUcjcbYv/U6xZvGPL4v9YxNw/v+MpfOia9yCjSnC5ggR3XZbx5ExGpG2wGNM194svh2l26FAVfgI5YCiSlEMDrBs6jj945yX4zcNb8OGlC2B950GQhVHCNSnPGIuk1MEiyrIofosGysE8T2HR1NSUrrkntOMMCcFWOlSj+wllgVIelaZKTk1+LTZYaLKMSjSpztzVMMn8WxHciWicouM3t8LqLGnMvSnMa9zsK1McURGBztwJgEsGjiKfsFoStgU4mThzDwcK8u7rYf3vOwCRmpWykLkrIW2K5q5ZyPDNBREFi2j3y/z9n4Pd+x2duYNxoAawfHwwGvmVxRts03Ogjz0Q3kuRZeSNmrSGYr3wePTZcTRmBSiaO2MpU1zwhqx0ePbSk4AiD9Rj7tKyiqRhgvuiZcC6t8vrp4N7uFz9+BG9nCq4T42B3flPsHZv158j8KO2YsgyFKEMMjwIFrYfzxicCSEgMc2dP5PaZYmS58ViLArfo1ReW/wNxGVpAe4EfPeq97FJdIrNTUxwV9ihKsu0uhW01SqA7URyJzjLFAAEy+aSC6VgISHKMMolAOkIRsjcQ4e9ytz9mgR3WwnbU9t4rF1AiXMPAu7IFz+0RG1cSFIZi6CjMoZcNivxQUsNYNsx5q8Hr+roznVw/vl4cwdyGQcLFy7UUpeoZtkJ4A4kOlQByFDtICRp2kyHMTRTfWbcrCz40nwHE2NR3nrGQBSpS+yLkJQSpZ6d9Th3ABHTsSwUf6MH5LJ3A2ElLB8fxAePbsflpw8BAOiP71A0d8HcQ3a0PDkZkrxHEriLhj+vmzdMkfjrtn8AGx2OTa2E5q5ZGMdrWi5MdSr/Dnywpx8D3Jr04Fsf+qQiGSidRAF3AGAvPongr78MvLEtkmWEtXdG6UMZg6WEs1mEyFh1WdxwVaYFnVnyMghw97V6Zk//q36c6VBVZlbkd/4Y5IP/js/AhBngbv3HvwK58n38D8/TIoTkohNXZBpkdR1JBcGozK38lGgZYscXYVmUgj3xMNiDd/HNTpKEMCPk0irkY4dYvsLcGQVEGlkWaEvj5VSbBmAne0GfW8/PEcvqBWgosyKSzWksTmSFBPSVrNf37sL7e3dy8FPquuBHs0RY4YyPUUANLQ18zSmpMXe1TbquLJtg7maKX8uc0QGwl54TMXc1zFFdfSo+UMrbnuIUlrIMIUDnPNl31N/j0TLK7yK3DLGwYtnyug5VK6GdiMynkBFuceYeUAoLRn0BaDHWf+R+8H+i36nP2xexeDsMc78TME2KEzOj06dPz4i5T5f0DQDQ09NzI4BvgKc5+V65XP668fs/AAh7KooA5pfLZR2dEsyKae4ETR//LCoDAzzKBbyCVo9GGht77AGQ1RfyP4Q2K5j7yvPAjuxPvBexbLBMhjs9EL175nlAU4vcQV02k80vAk4GHzmyDQ+vuBSDhZbwV6rJMix0ciSFd2VtSxtMJINWll7bGSeZ9bYY1XfqeMSibFufend0gQyMAW0hG1eYuk2AjFdDyD/4wgpCwlBI6OADZbRXvmc7t/D7hx0eQCwUUn0G66oPAACCTdHiLJidxlGeO/C1KAypaW5+EUCWl3NKj69OSpOsJs2KOVTDNqa+J/Fu2MggSGGhFi6q3Ej/MxsHd+J7SgoDChTCqXea5s4oX9hVmQJ713VwhONNFE0dOLM5jSmKbfakKfIDrwRbG5CaPWXAE7IMpcBQtGobQaCvlswXAN/jq1jVQdvzJLhHzN0wc9AH4Pz538HZuAls0yaeOCxhdipNgJryDHJP33whLGuCR5bIg7UPZjTayjV8yz81o6xqVoJ86BDw9AOeyFsUB/caZWgzFuMRxngody5aE5IbGQDCmA0SUP6+GAMCRXYCNKlWOKwfffRR/NFcMveenh4bwDcBfAjAWgCf6enpWaseUy6Xv1wuly8pl8uXAPhHAD9u5OZRtEz4vxq3m8lwdvcbn46fGGPu4RR25XnRMYpWx+8RNXpbQQHie3KBEwANIVi1gqLv4oLhSO81HaqoTnFtPsFJlDPAXebGVmUZ204Gd7Phq4OHKstYFkhrezR1hQ7uFiHIGg65QNFLYeTaIYzxDqp+v+d1zuZWXRAdp4J7cyuIORiFZYs+x53mEqB9X2fuQjqRCbbidSvOXT1yEmtlyKge961p7kb2P0CJTgmfNZG5G4BP8nFwz/kuqKuwOsncjZmReC+URm12alxuHk6WruD/ZxT2m83rC9Sonl455py0HY25a7HWMoSWgpngzgxwD+UbLQyWUelgFn0otlo0ozN3y7Jg2Q5sseqYRGnQiJJCGcWwzoQEpTD3cDMi/n6dTKJDNnq/4axGTFaUmYVFqUxbTcLFazHmnpBmI0OIHi2TEste8N1YKGWLsQOZGp1GRFizwDExUBtBFqpPw4x/r2eNyDJXANhfLpcPlstlF8CPAHyszvGfAXBvIzePZJmwGGYqzwsvTXYsmtEyIcsk518UnbtyjX6ObcO68RNAoQhbaTgfHDjInanyRKUMYQdUOxOXZZTKnhiPRdUIy9l2YnImlbkT244BCBCXZTSzlHNa2niHVhZvxMBdkStsZaEOAYttZszz/TTHvkdTky4XqE7bL/wZyG9/MV7Oeg7VcDoKAPB1WYaEzyGWd8tnsx18dvcL+NTNH5fHXjjUi64wPa1lsGwEPl8XoN0/ztxRq4AQIlM0X9W3B7+zN0y+tXINzh85ie42zsZJPr5dXsvWF0DDfC42oyAhUNG//TMd3M0YeAAYH5NbEArfi+aszuZiZXbqLRqybU2CalZlAUVzV/Mt4f9n77zDpKjStv+rqg4z05MYhpxEgiQBRUBJKsygBMEAjaiLIoobMKyBhcWwGMBVUTGLiOF9/ZTGAJhAYM0YUN9VMAEiCiJJJE3u7vr+qHSqurqnexhgwL6va66Z6T5VderUOU895wn3EwnbNHfJn6lnQEdjqxw5zTJO+7ffLtydpQLDouYuZjkbL0RTcxcd4Po8kCTweFx3yYbiZplsrDbG2mxessuMWIuvuccS1GlmGcsvIV4/SyDMywpX2m3uqOQ4CsOLAR2mcLfdpd3MBA7hngKSEe7NADGubbP+WQyCwWAroDXwn2QuLjkXvHNxxvlMNaJljIEyBFFuPeSHQkh9i5BGjbcfpChIx7RDeeAFcxH13voDudt/ASP80Xk9fdHZkoxihPteLbssjnB3E/qazd2wm8qxWi1AIMddowetvfFCzMnXhLsREgm2aAJFkvBVOoS7YC91mmUkdIeg43PbCwXstuhAtqvQE+8r5lkrHmusK8pjsnJlVCKmU0z/sEVr8qrKaJiXa2ruosVXEf42o5qMOWJSwApdMLb35WWazV0fl4Ly/WQbCzmQw+CbZxC8+BKtXy7slBmV5QI3SdTSQn/dZBfuVbHCXd28EY+hnBjjazPL+GyLVFGjNp76mHnnEO45orCVZe25RSIaX41eqIJI2BZ6R0amGVUT43A3omUMbboazd0smKP/jkiytcvNEgqwBDRBr776gva/VzDLmFS4gMfruku2zH7Gd8bz1rTgtru3mvQm2rniae6xa86Kc7dMxaCZWcUM76xwpY0yWMKiTzG7KY6XYZYxrq3vZCRH7oszICJZJGNzdwu3dhldAM4HXgyFQq6GoWAwOBGYCBAKhcjIClBYWEi4opTfAMXjxePx2BgdS3NycZb1zQlkYWzYCwsL2SfLlPr8NGioJVZw/a0AlE36J3sfmgFAXr0CfPp5TZInPTEq59h2ZOrflebkmNdTKiuIQMw2OC8Q4Hf9/1wJdqtR86GK9vysQAC3VBGvIJKyAgHKhImsNGtF5JefyCsoYHd2rskdI8KflYWcFaAM8NUvRMnOtnYCkmSrQOT1esgQhXs0ataklVG1Ihaqago/WVXx5uVT9as9Tl3xelEyMjD0FI+Q3FOvfn08LpWGfvP5zPDCnHx7sYoGDRtSnpfLHoDKCpfMR9WkGzbuLbNdR8o2rqMgkGXyz4gT0efzIA64okZ1DVM1E5XEyWzEiyvhKjweDyX6jsajRkGSXKsnhcOxC83TorX5RJWoSlb9QozNuE+Nml3yoBIGsrOyzDmmzp2F0kLbcfp0QZyZl0/mIyGorKDiq89suQwyaCyFIvwZpoKj+Hz4sjKhUhNEBXmWdpybn09lIEB5ZTlqWSnejt2o2r2LvOxs2wsks14BVds2IykKzqLS/tw8yoGAHlUmqaotoijPwbnv8/koLCw0QwAjkmw+tOzGTeEHreqYr159KjeuM+8jJ7/AXJPG3PQoCr4sP9Lu2OQgRd9RSGBTPAwt+IxNawCrIlYgELAVOzEgb94Ix9l114DfhyLLZPp97MfSiDMcmnpm2M5RjwqNS+2MqOKLye/zUun1kv23f+Jp2RplyQrYuTNGc3dl70wCyQj3zYBowG4ObInT9nzgb/FOFAqF5gBz9H/VqkiEnTt3YtDpR4eMIhwOs3OntWWMOsh2QKsHaWDnzp1E9+wGn892nHastSXas78ESf/eFtkA7M8IUGJ8JxwT2a8tQafmvuc3K9Jgz+afbG28skT3X9fzdUEzKiPusd2V+/chq5pw2rd/v7VUAzlE9MifPXv2oAZyrEzOjExTC6wMh82wxErFg1RZJSRxoCVvGVBVPML/iho1mQclVaVi7x5kqZ5VGQqVKm9sxENEtVOmikv+9917kDJ3uhxjjds+x3PcuXMn6j7dSVpRHjMRJVU1jzcmermePbxr668CZ4rgIwlHAMtxGqmspKqyAtAKOMt3P4V0183CWOiO25L9RCIRc0djRDg55xPYs2bHrPuYcK9TUcf8g+gzT+vnjFIq8NNU7LHmali37e/fZyfzMrTgsH5PZeEIFd4M8GYQraoyBYLRX1kMSUWFggZIrdtrEVVIhIU+tivIN1/I+0pKUKvCZhhkWNfcd7+12FaCrkzVd8cVFVBaAkI0aIX+SKuEsnqMmwQfaeR3e8tj1ZmdO3eaxaHFYjwlqpakKKsqVZn2ObevvNxak/pnqqpSGVFdhV1UliGq72QCQiy5o63xTMvLy4lEIjGsma4mn3CYSFUVJfqzNHZGmZFK204wy2Fzl1DxqFH6yBWsjMauqYqSElQkSrqfbN6f2We3fqSIZMwyq4B2wWCwdTAY9KEJ8MXORsFg8DigHvCR87t4MLbqkj8D5YnFyCef5tLIZePg9BhXlNtjqg2IZg0XL7ipkcdxqBpmmYQ2d134GpPCK0n03P4jl3z3QWyEiAHBoaqqqmXucN6rYJOUeg0Q+mg5YSXFo/kTxEQOR31PpbzMjKn16KyG5r1UlNmOlVWQhNKHJpyOX/HeEpmP3NqbHRUiMZyHItjcjUlfX9+ZVVYgGdEzwoGy6CgHPeJD2HXl17dlnCqCWU+SJJPlz6NG3OcdliO3Q70cCsv304QI5OabmrtmlhHGr8LF5u5gyfQYTlpjXtvMMhmmADH6K+7MTOFimItkGXS7sT8aRvE4npO4DvSXpfrOG3YHut/KUI2hKTCTmKydnmhyc9JSOG3uWp/1TgdymLBhFeO/fc+yuRttXGzusiQheeM4VD2CQ1VcNypIvU+NaW+EQjpt7kr33jFtNYeqqvkDJNmM8ssMV8VEztjCmY3fGdYux4Zwle15mMJdtSdDtRGiBSMxKyU+qhXuoVAoDEwClgLfah+Fvg4Gg7cGg8ERQtOxwAuhUCjpV46T4Mi9hy5dFIR79K2FqJXlMRwgMce6hTgZi7ueVaTbZlfWv3fGrtqiZXSt2HgYXtu+X5twQ/v35dy+wqSprGDQ5q/ptGszTfPzUONVpRc1kONPgo7drHsx7s3jsdvcJbuglCUJKRI2vfTiYvdFw5pgc2gbBFyEuyxbAk+SLeef8Z0bxDF3a+Ms+ClAUtVYmlOfRd9gvFTFySY7J34kbH9WWEIAhJd2VaXdXBONuhsj0YT7X/7yFwa2bmH1JSPT3A0p+vMw4WZzN3Zjuo3VdE4agsbriHM3NXf9Be20waqqNb6OaBnbfDbYRA00FJQa0XFq2Nx13ncbdNORFbysmi8TiI02cRXuWMJdqSjTtN2AnUJazJGwbO6Sba7bYCSpqUB2rvn85MEjkYpj4z+M/sQId5e2XlnSxiJcBV6L6ybDEfqYGZORqq9J09nryI7f/qurv8059fyRKvqUadYCZxGgREgqzj0UCr0BvOH47GbH//9K+qo6ZE8coSbCLfZYdEgt+l84pl1sOjzazsAcapc3pKJGtTA+cYBdNDYbFavXi2pjSbSnJNuEu/5QT+p4HL9v+cUyv1SUk1tVzum/fKdNMtlFc5ckpBNORv3vx1b/Tf57YZEqHvD5BE+7nS/bmMS+aJhyfOZia1gvnzZrtoO3YUxsLm6au6xoJemM64uIo+U6NfcJEyZQPvnS6o9DG09jvGKSeyoqNA0xXGFzqNo1d9XKslUsjVt0Ntp8KcIYGDb3ePB6vUT9fq1XVRqXu2r4cRSP/aUlCndjt2EI93qFsG+PFTNuau72aBlnWTwlbJnHTNIsY50oClK8l6ZeGMc8trCRuzU3w0piihHuPsOhKjioE1BLOB2q5jGgadjGWnZo7rZQSKP7aNEyRkRMy5Ytkdeu0dt70IJZVaTsXFR92KX8+q79M+aD04ciuyicXlm2MlQ9lnDPjFTGaO72taT/dsmxAOCn9dCsVWzfHA5VjxrVag9gFexOBoeXWyae2cLWyGWiim/bykpY962pUdjg1FocUIxU/njHiO2M0zjj3B1kQrapoQv33668gOjC/7U+Fxe8JLkLd0DuMxD5kZeQLr4SOp0gbL0FzV1RbAIAyT6JjEXl1cessLCQ/Px8hvbvpwmxcrtZRvJ47ZmlZmeEl5DzuSWjuSsKgUCAfDHj1zHWo9d9wkXffWjchsmXLalA+87WM66ssKJlJEwziC3sVJK1ueHIwBWFhi0sTVxM0fhmGbN9157QpQfSueO0fhgOVed8LS+zxksXlKaTvEBz7hmjaYYjxiQx6f3Vf8tirDSqJv2M/ioKkqj7iQJFlq2+BHJiSNHMcyYS7voO2SsyWcYpO6l1x0W4C5q7CafmLgpZY8PoiHPv1q0bw7ZrSYuSSC+RI+x4xXsWYIZmOh3kHk/Mo/cYZplwFXh9Zsit6ECVo1H8mZkJI3lc6cbdzDKCyiLpvDwekyzuCBHuMbSxro1cuuhcsGrUVXOPZyM2BlEbMMeTdFnUss3mHrVspxCruYsPVxRu3wpFDkQ7rOKhKWEywpX0kIStsfGgvV7kfsVaSUKPzzqv8bKSZPD6hOw2yW5DFzR3gLZt2zJu3DirbF9FmZ1y2Oe1bbNt9yIIEBvi2twTm8VsY+3x0rB8H3lVVik1w+YuH9MO+brbTa1R3bmVPvlZNC7ZTdOS3ZCvmdVEX4OkC862v25ARqVTJy3vTiQQs2vuUfvnbvkJYtf9GShX32KyIBr2ekWS7MpHeZndBg+wR4u1knRzoMd4dvqO0LYu/BmW5m5ogJGIafOWVGLMMvY57JiPxnPQ8yNc4deTmKoqY5Nm9Bds4+xMBnc+TmNFVKoX7q5mGTFvIqHmbtncxTh3RVFi4uJNs4xxXqefwdHPmEpMHo/95QgoimQlMQnCPzNsFZPPjFQiNW6hZ5cakXP6czXGoJo5ZfZBONYTjSJJsqmIhFMwyxxezb1F6+obuWlQTuEO1TtUXQZFUdVYA5fLTkFxmi1Ezm4Hx7NNLLoJSYDKSqR+xUhnXwTtOpGhyEz49j0aV7eRMUImRZu7JGlmGdHmrroId0NwOAV0ZaU9bd/rcxfEYpx7ErudmHauDlXhwk6CLgSzjEevtVuvPmRlo37yLvWlCOdt+AxfNILUqo12CdHRqDtfc6vK+Wt9HwUFWmRIXLOMkcmq6unqbrVHE8CINpJl2e5wr6yINTns1QNp6xmau/7sDLOM151+QKlXH+mMczVqWeeYi2YZkRrAprkLwt3rjW9O8elzwGWdmfQLv/xEuxce1gSIqJU7nD7uZhkV+epb7C8CQSBr/RPpB4xb1G3uxAp3W4aq4H+rTnOPgcdrM+/pJ7E4b7w+raYqEIhYvD1ZVZVITbSi97KpgWPrm4wKikKb3UIpw583WPcpOFQNk44nGgGfD6+huR8pZhnnW969kUsXxa2iHunizIwDqtXclaib5h57PZvmLjqZfD4Xs4zwdnZJZTZRvwHysKDuJNI1snhC0oCx6EWzjCzrTje9+5K9GILBlWHQ/sYId+yTQPb67P32uLxQkjTLSPWEOHG3SSkel2lPgpJV1YwMMJy3kteH1K2X5sQWwwFHXACt2tor8gRyLI1ZePGLTnyPi+auoMa875OB4fRTZIUYcqcsh3AvLdHGM1eL/TdHM+IWLeO3omUUxRwnU3M3be6GB1GxO7tFiFqs5C70AE3wy7K7EqVH9qir3rc+c8xzSQ/tM/uMU3Mnds7k2fMg7PQDgkPV6zVt7nbNXeDr93gw13U1mnvM5x5PbKazbnNXqyq1HWa4nCEbv6R5xIp6ywpXmpQnpt3d+O1RrM8bNePMTav525aviAeb5q5GwevFEzGE+xGiuYv1BOPB1TkkevZbHgsnngIGmZiIZEMhbResxqEqanX+TItvQr+WVzxnIg5zcestVKSSjiPpWVcAACAASURBVNGZLXNyYw4xJ7wo3CUZvJbNXZwY2te6cI+nuWM3JUm+DPtiNfjMxWiZJM0y0pjLhHusxizjLIqhChTK4kvPq79QxRe8xwt+v/biFftkOKtETc4bx+auH5tUhIELzAxVRY6J0IkR7qBpqnpfjDj3uA5VUVM1NGGj36a3UdxVJXKoWgysceenx6spGol2yCI9hRjVJUm25xpPc49RorIdNCNuDlXJrrnbXhiGguSI3pHivMTiau6KJ1bwS5JVZs+rcSIdu28HUmaWqblnRqpME51Z7tA4XNY194JCMIqZZGQiDT/flklv09yNYYhGwOuvkc29pnO5VtC4cePqG7m9YYWFLSke5Muvdz/WFq3hEgrpFhWRrObu82vnNDR3U7gLanMizd3nSAvXf0vBCUh9BiEZRUNEiGUJrRmvp6hb2oLkYvf3ObMahQk/pGQb/5unCULJ57UvBr9f05RtTlzHfcXTgvwZ2s5qx1bT3CXf//+EBvE1d0mMcxcXoterCU/xBe/1aXTOlVWmXUySJKRmx6Cu+8YeJuvxYqSxeqbdgxwuJzr9ao2hD0vQpopWUoT1yBp9ryNUUcrKjnWzZecieX2oQIb+bLzGS8EbT7jL5py2+qnqGcZW3oNkavW4OFQNzV2Kbzb06Jq7W9q7MW/FuHiRujcJm7uMGruT8zrmVBLcMrY6uoZZRlXB4xFMOYrr2hf707FtG75d/4PRYWRhXjbOygApatEPGLsa0AS0fqEsnxWIEGOWMUIhvT6oVIwOII+8IKZf2nGWkPdENbI2j65QHjGae1JwuRlVLA2XyAaViJUQXOOZ3XYKMUlMlRXa1llWQE/tNyaEyDURd/GAg4TLYMWUkTxejOLgMTC0zpJ9lsNPkmzRMmJxAq0PhnA3mlvbdwN5ihBC6PfbhbehqclyfJt7MhPOCOYJZFvOM5vm7hDuguZuE+4ej5acVFkBjZsh3/mkdj7Fgyza3GUZjIQtUXMXnJuejEzT1mtozUoypkIXFPmj/Om7DzSB4zTLuOUNZOeaAqy5WsWoUaMo0AnQYrhlDGEmCCrFoR1aCoJimfdUB0+IhPXcHZq7dPowq53HG/+ZGmMpBAWIu6FkomVQiT2/U6nyxmrupnDHRbgLBU9sDl7FXXMX+ymGP8qybH538tb1jGzXUtfc9WgZj9fqa4YWHTPgl+/oGPCZn8uCcAaQPNYYmCUQXeSRqtpVAC3DNQI5eXj0WtBHjM09KbjZoUWtLZFgqc7mrhdItl+vGoeqU3M3KAp0m783mpzN3RYRYbJjJn5wUs/+2h/1G1gamRkto//rz7DzUhhmGYF7JuZawkKSvRm2RB9zMSuK5WyO0dyTn3D244SXikO4y6hWKKRNc/dpz7+yAvyZSPV1LhOPB1mMYpIkJEO4izS9guNOURTT7GQId18NhbvH7ye3qlwbJ6fG62KWkbJzzfuXJImmTZtayXlOB6XYX/15KromZ6aqm89VjmuVQVWtZ+cwV0hiAXOvL/66SibCTUB8zd1+fkmS7MV23MwyshYKKbto7jaHqhiaGcf8ZOuPsyCLPs9b792O1yRR0wMpvD5rHei7zeN3baZeo8Zmn2PI1HSBLot9SSC3LJu9Hi2Tk2fSQrvWHIh3nqRbHi64LTZRuDvDzGzHJra5e5xhXs5jdMSEQlbpFWlkBfZrxECGsLZR1yZaCDazTPUPHEBq2hJ51jNIg0bY2Q7FaBmfH8+9/xNzbp8ZXCMITGNsRc3F59Dc9ZeWJCcKhUwgEA3GTbds5ETRMjbNXdTQ9POUldo0XCkrG7nU4q+RJBlat9fMXF17Wl0VKKQ14a7fn65texPdSyL4rDBVyen/EYW78bLMzSeGf69xc/1cDk50U5jJGGygilGgxgyFtPwT1gvBcf6oahcuCWzu8XMXqpmjyYRCCpq7/M97kKfN0j4fONzeBwdk/YXk0cv/ecV8DF07llTV5jSXDD9DVgDpQouW2tYf8W9JMh2qkopmHpVkyywjUFWLCol06hDBLGMPhUQcA4/g84gHI4AAVbO55+RZNvcUNPfDanNPCvE0d58f6YxzkQYnoJaPY3O36l262dyrMctEo5pJwOfXHXu6Q9WfAapGhGTCLRnIgLiAzQde/YOT9AgL1TTLyLZEFyTJvsD0xZirRpEkiQxRi1UUM7yroKKcXd4MJL8jWsY0ywix9c4dSQJtQp54A+o3/7U07HjHZcY6VI2i6HazjD6mpSVmKKF2g3nIQsFwZI0iwZl6Li5Ij8ejLX6fX9O2ZQVfjYW7/jwVD1LHbki9T0X95F3tM8MMlRWweGVEmmkjjvsvU+HnH0w+eOtbQVM1bO5VlTqhl7CDA23+is9f1CLVKJKi26OFKK0YeD3x56K4S+veG/nci+1fJ5vEZAiw1kLdBRcHKVjRMoZwb7dnKwWNG5ORkWFSVBimKAnA46FKV1D8GRkaU+pse4kJm1kmZhchnKtxM+3FqTtUJa/P7I/oJ5IaN0PdvFE7n1NzN2zuzmglB0yHqmy9qDxqFHJyhaLoR6Pm3qotUt8i7W/d5i2PGOvOI25Asb+RDQwbNozmudn2cmVmQzfNXTDLoGqRAo54cNnI3BPtrS7Fgk24CvcUHofBRS5LWrSMYHaxC3ft3E3VKi677DIreQlswvrs3zcyYsPnWnaiqDUZGqktWibJDFU084Mskp7Zjktgc7c5VF009z27bPZzcvKRhVqxccNsjWgFBIHjzzDDKL2pPAMRxvM0+ipQOJjCOjvXSk5r0NhJPa75Iwz+IAFmKKTwgrXZ3MUkJtni/YkZAVVFLIwTNxzQyd0vQgg5ljqfaMZ2m58lI9zdomW0Rq6XFOPcpYZN8MkyHc8Z49530fQEZGa5R+TJsrtsMK5jXFnKzNI1d9WkHzDXgd9xbodZxrK5i2aZ6te6pFjPT9Pc883nfcRkqCYFY6AD2UgGa+TePe7hZTHHut/eMcccw9md22uTPyamNXbCS2Bu1TQmxXLLLGMcpmvENmL9RMRoNpt7fCdLXJg2d4dZxincjT54fbGhp4ad0usjU43SouR3rV9uzl4lQShkDe3U1YZCmgJLaOcVNHdRsOTk2ZOS4jx7sUamucAzMk07ua8as0NcGBEuhllOvL4o3A0UNoI2HaBhE+SRFyU8tVsopPG8fZEItjh3ySG0RS2y5bF2m3sixBkH0dRoZAEnPE28DFWX5xPvmVkOVRmpbUfkR17E37Of/VgxcUu4/cw4ZltxjJx/G8ERVpippJllwpXa/DPGzrmevO42d5tZJoFwd2runmgEXySMlJOrCXqOVrOM12cNzN7d4Cyj53ps/IGQZMnantq+cBdUsiwTjUQs4Z6bb8UBZwasOPdIHLOMwMcO2IW7twaau2iWEekHJMm+zTSEu5tz1xB0Hq/lBPT57TsOIQojXihkUslobkgUCimaZRQXzR1sdXKl3Dz7oqpmLBUhkxN/ppn676vGqR0XxvM0whnFPARDCIjCPS8fKSuAcsfj1Z7aDP3zKCYZXtTwpUTD9ugTWbKbFYxzXHylGXop9k8692Kk9p2h3BHhk4wQcRHuyWnuuD+fOC8cm0PVcQ3pkqth22brf+y7Ap9LwW7tXAk0d/NFIZi8VBWqwro/Qm/vtBoYwt2kAtEP96TmUDXm+9CfvtQqORnsoagpmWWOAOGuD7TPbw2IGjVvOCESDUQ8zSXO54qiEBaEu+Tzm0yAZAVonOGl7Z5t5EcEAS4KyZy8+MLd1NxTEe6GWUa3LVvqjX2yGi8ONxORmIpunE9R7KF4Ymx9vFDImkJcpJlZDvreBHHuxjFiEfScfLv5LJ7JwcgkFe8hIxOqdLNMjYW7Pmam5q6fJyPD2iEFcqx7zHIQZSWAcSeKYtnCI/rL0B+p0hpIwsvEtvt0OlXtZQflIecB0HDHDgCO2bfDOk91qJe8cLcJ5Diae7XRYi7HyH0HaX+8957WRowccumP2+dOQR9LPyBp4a2RMm0dCaGQNnjcHaqGzV1RFFDjK3IGz42xc2hcpvuQDA591KPNLKN30ee3hzgdqHCP5ziLMxnMSWrY3H2CzT0rQI7Xyxk/r8Yr2H1tWqaTO8PN5p4ksZCtrbFIjYkkxzHLVKe5G0JAVuxJNKamIUbL1JJOYCwSjxfq2R2ukmCWEW3uZiSEJEMjoRxaTp6dmCmOcDLGxiOOR0aGWRzblyjxLBGM5xlxmGX8mZagF9kKU7iOokbptuMnWrdobj6PiG7vNc2AxiOXZRvxladpS+1rnVzNnDeOtdGgQQOuWPMf2uzdYf8+UT/dQjwTCHdDiMYV7tWZZRJpuzazjMxJ2zbQdvfWuO0Ta+5CP539Em3ujt1mrM1d/9zglhGjZVwYIs1AD6dJTD/vUai5G8LdQWh1wJq74bWuxizTpAXyX/+J/MZS7ZRuNvesbOtaYoKVqC0nFO66wHILzYyHqGCWActR57S5mi8Yl5eW0X+vT9z7umvusmxt5WtLczdesD4/NGpi+8pmUhAnu6G5N2xiS54hOxcZbUGqSHE5zV01d38G4VIt6snnzJRMEpJP53d3CveMTMt+7ZwDyZ4b6Ld1HXL9+lCqaXNhnx/KK/FHwtq6MBzsjp1b1tkXUtqwmeWodc4bAbYAA1GpcvZn/DWw4bukzHHiOCuKQjSqUdi6vnyrNctUL9gknQyw9/YNCdvFE+62l5D1VrEO9FrCXcrItO+L4sS520jlDLnjItxNzd2WeWuZQz2qerTZ3AUBIGqMSQn3BANhLn6nQ9UxgfwZSI2bWY4hw2tuE+4B6zgxkcax0xAfp01zMxZ/KsLdNMsYmrt1N67C3W0hinHugpnH9lKyae7uNvcaw7R5Z8SE/9lMLG7RMqJJBn08AznIKkQkS/uKB5sNOCOTKllPYqqp5m6MmaFJm2aZTCucNK+gZuc2IEumKSDq9UF5pV5YXI4x04E+FxTFHoHjmDfxrxVfuMt9BkKfga6HxdPcjb/N2rcpmWVczHOJWiZhUkoUCulqljEg5gA4I7yM2H2Blx0EoS3LmCI3aeFuUTinqrnXfbOMMbBefy1r7vEmt7uwt20pwcpQBU0wGdcSqWKTfRkZb/MUhLt0khYtIHU5SfttetqdW7oEwsq4ntdhlvG5CHdbtEwtTRvJLkCkcZOQ/z5d60Y8AjaDt7upXbgDNtNMPEHgrrlnmhVuvIlyExLBNMs4HKoZmUj5Bcg3zETq1b9m5zYgKdC2I/K1txHWx0HjnsdupjPvPVaAGC8aycnC6IQxDoqHS759j0u+fS+5LiYQ7rJD+MWgGsGVSHO3OUGT2FGkZJYR4fUJZpk4YZbGHNRf5jbhbqxHl7VumWXE+S4I92j0yCEOSwqiBqHUps3dcEBVY5Yx4opFzd3oj+BQNY8Ts2dF7fDUM2H/HtQPV8TvSwo2d6l1e5QnrDrlrhMREodjGtfzeG1mGZumbCZdCNEyKaRAJ4S5K9NeJnL/wdZXQjPbojaSsHRbsg25hnCPT3sbz6FqCHefr4bC3R/H5q5r2lJ7LWtVGjcJSSDaSgmGP6VjN3pKft566y0tmqJ+fYe5JYFw63Ii0p/+htT7tJivpMuus6J9BJrkQFhP1LvlgWq7mIxwjztXq5lX1VJiQ4xDNR4Sm2UE+z3YuYISxbkb5zZYK6+4AVmWiO783bqmMR4uaz2u5q73xKNGKD9qzTLijeXWUrSMcx44t2SKU7gb2q6wkxA1d9EsI76MGjSGUwYmFu6pmGXiIMYOmsgsY2ruPmyau4hM3VwSrrQnNNUGBLOMEx6RxkHsU7NjkC6/HunEU2LPl5OHXBIFhbgL3E24S526E964DACvN9YMkRRMs4w9WkZyxu8LL7CUIQi3Dh060KFDB6Jvt0Xq1hP1o7f1C8gJhZskSUgDznD9Tu59qvWP8UxUFXnKXdqxBldPCnCaZUCwZcc2TniuGHOJALtDtXrhHi/OHRzzDexcQV6vtUZc5i0IZpmsbKT69Ylu14pba3kKhuaepFnGa4VeeqLRI9ehqqoqv/32GyUlJeaAq1k5qOdfAccehyQp2t+AlJ2PVFqa+HxRzPayo62aX6h9l5ll+07NrmcegyRBbj5yaSldu3altLSUis5ttO+OPQ7qN4L2XeGYdoAKxnE6pPJy2/XVvPqu/Ym2bKsd27BxTD+Thf/ccfTNLiAzM5PS0lL69u0LQGmDAu3c9erHnDt61oXaTqNVOxhxkfZ3s2OQS0uJGvdy7HHa8Q0aa9EB518BjZqybds2yuKMbbJQFa82Hvn17ONx/hWcqHhomFNIGMgsyKdUvEaXk6CySvsR76ffmfQuq6JKlmOP0SFJEn379iUQCJjfq82PpdcATbD56hfU6L7UjIB2L16fNn7tOptjVdPxMe/LmPORcOyc1zXwaNsu2vWatQKvn755DfESZdu2bVRUOOqgJnPNVu208/n9yE30XVKC+zDmW3l5Oe3atTPpvDMyMsxx7tGjBxUVFdQr7UKppMTci5qTr42hJNnGzDg3WT7zXM77atasGRkZGeRXllGanRd33YMmZ5KxuZt+MZFt1OO16AficEeZwl1vZzPLJNDczeNFc65Dcw9LySsfdUq4l5eXk5GRQUCgSFU9CrRpr2X0ZWZpf4OWBFLNG1qNRsz2Upbd+aHKkvad12f7TlVk6xqyojv7smjcuDFVlZUE6usRD4WNIDsb8vOhsLEW3+ywRUuBAKpwffOajv6oDRpq6kx2bkw/k4WndVua+7Pwer1kZWXRvLmWvRnICUC0vUac5ByD1m00TbNBQ1D0WN7CBlpfjTFo2FjrW2ZAMzF4PZCTh9fvR44ztslC9Xm18cjKto9Hm/YEgLy8AkpLS8muV4CcxDXU5i1pWl5BRJLJy8rE73KMz+ejefPm+P1+soTvjfHKzQ4gkfp9qX6fdi+yoo1fw8YamVVuvRqPj3lu41kEcuJncTZqBH4v5BcQUTw0z85FQcXv99tNUMles0EjIKoV7kii/+Z8CwRo2LAheXnazjo3N9f0YzRp0oRwOEyu0oKMegUx69dce5Jku6Zx7hyfB0X/3OPx2O6rsLCQzMxMMsOVZOXlx133BhRFoVOnTnzzzTeW1m/+NqLC9F2vWHxFtLnHS5AybO6uwr36yDibcBfMQJ5ohLD3CNXco9EoXq/XXpHciK8WQpA0zurqt14JbY/JIFEyhCwJ/ZGt5BXQSaESRKfEQzxHUxJwO7La0DHzIFvgoeMkhrNXuL+aZqTGQ7zcAp+PnD27kjcDKYqVFVjDZx8vhDKJI/XfjidRWyasQ40aj4MdbuYPKTvXff2aFApxrn0A68MJj8dDvXr1YvoIgvlHL+FpM8sYrJAG6ZwLnA7jiG6qk2UZSdE9DgnuRfY6NHdDuEcihP21bHMPBoNnArPRrJlzQ6HQnS5tgsC/0Gb3l6FQyL3MSAK4PXDJ40Ft2QZJklCNt11txVkn7kys/dImA4VF62yXGUgcCx7jGKqFheTQPgoKCjThXuFSKs15WbfF1Li51k9jN+LmmC1oYC+3lnqn9V9xBGBmFjRoEte2GQNZ0WafRLVDGlc5qKmzWJa1Y82sTeHFf8CQ0PhjEjRxe1EfiCx05E8cWhygcE9R+TAdvUY8uu4/USbeoDVwkgHKkhXh9ae/IQk89NIlV6Ns2QG/bo+juUvV3kvcaJlIuHaLdQSDQQV4GBgCdALGBoPBTo427YCpQN9QKNQZuCbpHiQByflGT1a4J3rI5ncJQiKFIsuSJNm1QcmhuYuIu6DjaCa1oSTZKGS1kL5qt+OGt1+caEKChuT3axmhjZtD/YYxHZZy8zVH8YEirpYoaUyJyS5WRSFZieY8ZyBcET9EL8nzSa3aWFFc5vSqBeGeb4QtJiXdq2mXJGq4O4vH0+L2ncvRib9NIpos2V4n6pcp7I2gjbDDoarTbAPIA85AatXGOrbvIORG9hKZxjr0iYmYiYS7qEh5vJg2d5FOPAkko7n3AtaHQqENAMFg8AVgJPCN0OZy4OFQKPQ7QCgU2p5SL5KEJElabfpU2BMhMfWuczYILxIpP0HSiTghZMU6USKTkfFxjPCv/m1eLWqiIdZvoN1HRmZCmWhEfKgHpAq6ndj4XUtmHsEsk+o5A1UVBKoqQKphmGI81IJ5Q8qvDwZ9QDyY2ZSCDnQgz6uWwl1TIpWrTt86SLuIWD53+y4YJ9OrJMV1pornM44/8cQTUVWV448/HtZ9rTVKZHO3CXe7WSYVJCPcmwGbhP83A70dbdoDBIPBD9FMN/8KhUJLnCcKBoMTgYkAoVCIwkI78dC2bdu0TiVIvKmStJtXkswkjDZpoZWec7RXIx7CaPNIvF6jZs0494xiHph+Cx6Ph3A4TNeuXenSpQuz77/fbOfxeonKClHA4/OhVpYTASSv13Y+I57D4/GgRsLaNWXZ1iaqKNqxksTo0aPZtm0bfr8fn8/HrFmz6NKlS7X3afgpJEmyn1s2zi3HjqvHY9LmVhkCwaMgezwsWbKEtWvXctVVV5nNI5JMFEzui0TPyQ1NmjShY8eOgBbd8OzTTxEGRo+/jO27duHz+aiqqqJv1y5MnjiB+nql+WShCm1lWbH177777uOVV15BlmUikQh33HEHAwZYPPPicwoLf4v4+eefWbVqFeedd161fTGeqeLxxpRxM87Vs2dP7rjjDi677DIApk6dSrdu3Tj//POTu2EBG3/dwqcffsh5Yy9A8XjIryw1uemre06tW7fmxx9/tH2mqlFtHBzzqTp4PB5TuBUUFNhYGWWhP27ntK7pMleJXavi36KATvQMzXMJcyU3N9c8h+GYBc1J6/P52K0oGHE59Ro2Yn92DpGcPOoXulMeZ2dnm/dv2PWHD9eqTFX+tpXfAY8ixz0+INRc8GVmkVu/PjtxMM4mgWSemtvqcr5CPUA74DSgOfB+MBjsEgqFdouNQqHQHGCOcY6dO3faTlJRUYHf77c7VJ3IySOamYWaqI0Iw17raK+GI+aNiNfLysri+w0/UlZRiRQO85///IdGjRqhKAoBwdERjka1o2WZSDRq+gNUxePa/3A4bPZZRbK1UX0+8PlR8+qhqioPPvgg3bp1Y/78+fzrX//ihRdeqPY2ZVnG6/USCATs5/b6wONFzc137VckEtHZ6oz/o0TDYYqKiigqKrKfS7/HaFRFcYxbMsjIyOCtt94SxsR6BsY9V1ZWMnPqP7h0yo289NrrqQl3VTUnazQaNfv32Wef8dZbb/Hmm2/i8XhYt25drOPe6FPE0qic32/cuJGXXnqJkSMTVP8y+qKPVUVVFd44415YWMgTTzzBBRdcgM/nIxqNEolEUh5XgJ82b2bhsuWcM+Z8iEQ1QjFJ0wDLy8urFdDOa6qClphKf8LhsGljdt6LkYEZ7x6NNRnvmmrUOs5QvAxEo+Jzq77vYvv9+/eb/du5cyeVepb5rl278Hg8RMqscMrf9+2DYWOgshyn/DJQXq75oXbv3m06U8170K8VrqqKe3xFOIzhZaqMRtn1u5YEpYQrXdvHQzLCfTMg5no3B7a4tPk4FApVAT8Gg8Hv0YT9qpR6IyD6whOom36svmEKkFq0Rj7/8mrbnX5yb1asXMlZbY9j4cKFnH322XzyySdkej2UlpVx030P8N2mXwiHw1x71ZWc2bINmzZt4uprr6O0UquzePvtt9OzZ09WfvF/3DvvaQqaNOP7777j+DbH8uDMO2KLWLtkXPbo0YNHH33U/P/dd9/lnnvuobKyklatWnHffffxySefMH/+fB5//HEKCgpYuXIljz/+OM8884xr+0AgQO/evTn//PN59913GT9+PDt37uR/5j2Joii079CRR+fMYf78+Xz11VfccccdbN68mWuvvZbfdmynfk4O9945k2MaNOKaa64hJyeHL7/8kh07djBt2jRTQ0nqeSgKamFjmw/F5/Mx7a9X0G/MhXzzzTd07tyZSy+9lC1btlBRUcGECRO46KKLeP755/nuu++YPn06AM899xzr1q3j6ism6ie3rrN9+3YKCgrw+/1EIhHq1atnhtt+9dVXTJ8+nZLfd1GQl8e9Dz1MI+DHzZuZ+o8b+e2331AUhccff5wZM2awfv16iouLGT16NOPGjWPq1Kl89dVXKIrCLbfcQt++fZk/fz4r3lpKxb69lEZhwYsvut5//fr1Oemkk1iwYAEXXnih7buNGzcybdo0fvvtNzIzM7n77rtp27Yt11xzDUVFReY4t2vXjnXr1jHz/gdY/8MGBp97HqPPPZc8oqz4+FMqFQ8lJSU8/fTTjB8/nj179hAOh5k8eTJnnOGezARoURq5+TUmO3NDjXn/DSTtUAUaNrVHeCVq7jDDxESZiYmJsozU0E5y50TCKDUziSl1s4w3XBXniDjnSaLNKqBdMBhsHQwGfcD5wGJHm4XA6QDBYLAQzUyTmJbtsCP+RBlRNJDFy5ZTXl7Ot99+ywknnGB+98Az/0ufHifw+uuvs+DFF7n933dRWlpKYW4O/+/+e1jy8os8+uij3HzzzeYxX69dz/Tp03n7nXf4edt2Vm38Oakevv322+YC3LVrF7Nnz2b+/PksXbqUbt26MWfOHAYMGMAXX3xhJncsXryYESNGxG1vwO/3s3DhQkaOHMnDDz/MkmfmsfzZecy8/baYfkybNo1Ro0ax/OWXOGdwETfPtIKltm3bxsKFC3nmmWeYOXNmwvupqKhgyJAhDB8+nCVLNKudlJ3jmrLeqW0b1q9fD8CsWbNYsmQJb7zxBvPmzWPXrl2MHDmSZcuWmURU8+fPZ8yYMa4C5NRTT2XLli3069ePadOm8fnnnyNJElVVVdx4443MmTOHN+fNYcywIdx1990AXDn9Di655BKWL1/OokWLaNSoEf/85z/p1asXy5YtY+LEiTz99NMArFixgkceeYRrrrnG1No+/++X3Hf3PYQW8qvM2wAAIABJREFULEg4JpMmTeLxxx+P0fAmT57MbbfdxpIlS7jpppuYOnVqwvNMvfoqenU7nrdeeZnLx1+i9WH1Gh588EEWLFiA3+/nySefZOnSpSxYsIBbb73V1KTdIEkSUkGDxEXeax0Ws6Vrn5KpMWz8zgogJfliqs7mLnXoan2ZxHg4be42JKD8NY8XaxYoXvOmPEm+rMxLVdcgFAqFg8HgJGApmj19XigU+joYDN4KfBYKhRbr3w0OBoPfABHghlAo9FtKPXEgGQ37YKFT2zZs/nUrixYtYuBAO/vde5+uYtkHH/L4iwsBTWD98ssvNMzN5sZ/38PXG39CUTxs2KC/2xo05oQTT6RpU82D3rlbNzZv+TXGaSFi0qRJlJaWEo1GTSH4+eefs3btWtMkUFVVRY8ePfB4PJx++uksW7aMYcOGsWLFCm688UY++ugj1/YGRowYYf7dsWNHrvzXrZzRvy9njoqtTfn5558zd+5c2L+H884czB2PWi+JM888E1mWad++PTv0gg/x8Omnn9K4cWN++ukngsEgHTp04JhjjnFtK879efPm8eabbwKwZcsWfvzxR3r06EHfvn1Zvnw57dq1IxwO07FjR3Zv0zi8xcimQCDAkiVL+OSTT/jggw+YMmUKN9xwAz179uT777/XbNyVFUSiURo1a87+klK27tjBkCFDAOxFxQWsWrWK8ePHA9C2bVuaN29uPvcBAwZQ0Mr93kS0bNmS7t2788orr5iflZSU8Pnnn3PFFVbGc2VlNVvy7FxNK8zONYvCDOjVk3r16mkmQVXlzjvv5JNPPkGSJLZu3cqOHTto2LBh4vPWImIclU4Ywjs7TiGT+sn0NfVoqeo0d2nwORrdRUVFDHupGxIK92QyVEXN3esxndueFOlJkvKUhEKhN4A3HJ/dLPytAtfqP0cFigf059Zbb+XFF1/kd93mhU55NGfG7bQdcLqt/axZs2hwzLEsnzuPaDTKscceqx2hePAJRYUVRanWhvnQQw/RqVMnZsyYwbRp05g7dy6qqjJgwAAeeeSRmPZnnXUWzzzzDPn5+XTv3p3s7OyE7QFbduazzz7LR4tfZtl7HzB75Nm8/c477h0zFStr0ooOs0SaIGCmpLdq1YpTTjmFNWvWuAr3SCTCdxs20K5dO1auXMn777/Pq6++SmZmJqNGjTLTzseOHcuDDz5I27Zt0dIs9L4Zse4CFEWhT58+9O7dm2bNmvHmm29y0kkn0b59e1599VXUjeu0hi1as++7NQnvI5n7zUohK/Wqq65i4sSJ9O6tvfKj0Si5ubksW7Yspq3H4zHtxaqqmjsXSdbC8yRZNsVbZqb1Unr55Zf57bffePPNN/F6vfTu3btGtAQHE5KioLZqQ7xwmeTrCKRm/olbZs/4LcuamSdJJAxBlpMIhRTJ6xQhFFJNTXM/QtPnDj7GnHM2f//7383oDgOn9urJvBdfNhf2mjWaINi7dy8NGzZElmVeeumlmG12qvB6vUyePJkvvviCdevW0aNHD1atWmVGNZSVlfHDDz8A0KdPH1avXs1zzz3HWWedBZCwvYhoNMqWLVvo2+NEpv3tz+zdu5eSkhJbm5NOOolFixYB8MrSZfQ88YSY81SH3bt3m8Jk165drFq1ivbtY+vgVlVVMfN/X6BJ02Z06tSJffv2kZeXR2ZmJuvXr+eLL74w25544ols2bKFV155hbPPPlv70EVbWr9+valRy7LMhg0baNmyJW3atGHXrl189tln2rXDYb7/fi05gQBNGjQwd00VFRWUlZWRnZ1tG5vevXubGvcPP/zAL7/8Qps2bUgVbdu2pV27dixfvhyAnJwcWrRowauvvgpoQvzrr7UQuubNm7N69WoAli5dagp3W99cZNu+ffsoLCzE6/Xy4Ycfsnnz5thGB4CCggJychKXDkzG5h5TbOYQIJZbJoHmnQSMKBm/38WEY5wzkc1dDN32+W3EYamgTtEPHB64PMD6DWnaIpvLju8e0/Tq8eP41wMPU1RUhKqqNG/enGeffZaLL76YiRMn8tprr9G3b9+UNLd4yMzMZOLEiTz22GPMmjWL++67j7/97W/mFn3y5Mm0adMGRVEoKioiFAoxe/Zs7Rbq14/bXkQkEuHKK69k7287QVW5bMKlJi+Igdtuu41rr72WRx96iPq5Odz773+nfC/r1q1jypQpWq6CqjJp0iSbcJ80aRJ+v5+Kigr69+/PU88+C8Bpp53G//zP/1BUVMSxxx7LiSeeaDvvWWedxddff01+vhafri1IO+1raWkpN954I3v37sXj8XDMMcdw11134fP5ePzxx7n55pvZ+9tOIuEIE/78Z47rfzKzb57GlAce4Z577sHj8fD444/TsWNHc6yDwSAXX3wxU6ZMYdCgQSiKwn333ee+oJPAVVddZXNwPvTQQ0ydOpXZs2cTDocZOXIknTt35sILL2T8+PEMGzaMfv36mfPM1rdzzsHJmXruuedy8cUXM2TIEDp37kzbtm2pTXi93ppz4dc2kpDJSSUx1VC4t2jRgj/96U/uXyZD792yDbTpgHzmedrfZhJTagqjVN1W+iBC3bLFHnRTWlpKbm5ujULBUr54RTn8ugl8Ge6FH9yOKdkHO7ZqZGPNWiV9LWfYVl2E+tMP2oRr2jKuE03dtQP27oaCBngLCuvEPY0bN47LL7+c/v21Qhh7d/1GWVWYgvx8vCkIWssscyxs0rR86Zh2td3dQwK1rBS2/QIeL95j2h7y52Ts0vLy8mz+iv3791NSUkJBQUFKL4LKykqqqqpshILONWWcOxCuINCoiVVrNwE+//xzPvzwQ84++2wWLlyIz+fjz3/+M2vXruX//u//GDMm1v90oFB37SD6jwlQrxDlrnm27x54QOPLF3NLANTS/USvvoBSj4+nOg7gzjvvhCReYX9czd0szpzKEMShDziqkODeDpseEIs9e/YwbNgwOnXqZAp2AMnrg6pw6hm7jZsjV1USPZof7REKn89n8+0khAoHanNv3769q8mwVqDTU0jDg8kfYzpUaz9D9aiE5POhGhzlKR984BJgwoQJ/PyzPSRy2rRpnHbaaQd87gNCwlurXrp/++23MZqH3+/ntddeO7B+OZCXl8cHH3xg+2zXrl2MHj2aaDSKolg0EPPnz6egIHH9UikjEyU7h2h1USkp4lCNx5GAQ2FLT+UKTZs25aKLLqKsTIsuOiT98/psFdSSO0j7paRt7slDCiR2AMUeYPw+cD/0k08+ecDnqF0I5CTVIcEi6Nixo2uUx6FAQUEBixYtoqSkhPr166dMj3AwcFjG46jeWSaBJG8/Ly+PrKwsnObhugfthhTUlMjtDv/sPxJxNC+eRLfmz4B9exITsaWRRhwcTM3Y5jtM0XxYbfz9IcLFF19s5ceIEJRJTwo3lxbuKcFgfjyaI0gTTPBADvgzkepKVIQLDniBHsXv7bqCwy1Enai2qM0hQps2bWIi1QDbnEwL94ONOjY5axUJbk0yKmId1TiKn+1hRl0T6gbqar9MCJp7PZK3u9eNV9aRhro+GQ4IR/O9pXE4cejMH6nZZeqKWSYuhG6dLZXEb+dAWrg70KxZM6688krz/3A4zPHHH8+4ceNq1aEaD6NGjaJ///4UFRUxdOhQMwP2oMOxHt566y0eeuihWr1EixYtKC4upri4mEsuucT8XLznAQMGMG3aNPbs2VOja8RboLNnz+b000+nqKiI4uJiW6Zrsti0aZONA+ZAsGnTJpo1a8a8eVas87Rp05g/f36Nz2f2LUUh1a5d/Hj+aDTKTTfdxMCBAxk0aBBDhw6NifJKFn6/n4KCgoTp+WvWrGHFihXm/7NmzeKxxx5L/iI+n8W8iBYpNW3atISH1BWzTHwIzzOFEqNps4wDWVlZfP/995SVlZGZmcl7771ncqJYNveD+4Z/6KGHTD7322+/PSk+95rC5HM3oN/a4MGDGTx4cK1eKyMjI27kiHHPlZWVzJw5k0svvZSXXnqpVq772WefsXz5cpYsWYLf72fXrl1xibi0al/uMAToOeeck/S1w+Fw3KidwsJCnnzySS666KLk47hr0LdEfagOixcvZuvWrSxfvhxZltmyZUuNs68lSao2eenrr7/mq6++YtCgQTW7Rrzi29X0S/xd5yAfZcJ97mfb+PH3Aym+HIvW9TK47KRG1bY7/fTTWbFiBcOHD7fxuQMan/s9N/Pdhh8Jh8Ncd911nHHGGWzatImrrrrKpN41+dxXruS+++4jPz+f77//nq5du/Lggw8mNZFS5XMHDpzPvVNnHn3sMVc+9127dlFQUMB9991Hq1atDpjP3Q0+n48bb7yRvn378vXXX6fM5/6Pf/wDsC9Ukc8dsMW8m3zuevjkvffeS0Nqgc99xQoqKiooLS1lQRza39rkc7f17ZxzyFPDB8bnrmPbtm00atTI1G4NdlPj2pdccgnvv/8+eXl5TJkyhTvuuINNmzZx3XXXMWLECMrLy13HyO3znj17cs8991BeXs6nn37KpEmTAFi7di2jRo3il19+4bLLLmPChAkAvPTSS8ybN4/Kykq6dOnCDTdoBa3nz5/Pgw8+SKNGjTj22GOrfXHWWaFuQqBKqM0C2X9EjBw5kkWLFsXncz/5ZN544w0WLFjAbbfdpvG5Fxby/PPPs3Tp0hg+99WrVzN9+nTeeecdfvrpJ1atSq6GySHlc3/qCY3P/c5YTnaTz335cs4991xuuukm87sD5XN3g6IodOrUqUZ87n6/n+zsbNtWW+Rznzp1Kh999BGAjc99yZIljB07ln/rvDkHzOf++efcf//9cQW7gdricxf7drku/A6Ez93AWWedxbJlyyguLmb69Ok2M2FpaSmnnHIKS5YsITs7m7vuuovnn3+e2bNnm0pJvDFy+zwajXL99dczYsQIli1bZtJVr1+/nueee47XX3+de++9l6qqKtauXcvixYtZuHAhy5YtQ1EU3nzzTbZv384999zDokWLeP7551m7dm2191jnNXfpKNPck9GwDxY6derE5s2bY/ncJZ3P/eNPePwZjdjK4HNv1KgR06ZN45tvvjGZBw2ccMIJFp97585s2rSJXr16xb3+YeFzn347Zwzox5kXXhzTH5PPHTjvvPO4/fbbze8OHp+7JXhS4XMHbBwkxv8Gn/vKlSv5y1/+YtYrNfnc0ezLDRs2rDU+d6N+ZiLUGp+7CF0W1Aafe9OmTXnvvff48MMP+fDDDxkzZgyPPfYY/fv3x+fzcfrpGvV1hw4d8Pl8eL1e2rdvbyYGxRujRGPnxKBBg/D7/fj9fgoLC9mxYwfvv/8+q1evZujQoYD2ojF2kaeccgr162sFxUeMGBH3vAbqus3d9tJJQXOvs8L9cGPw4MHx+dwfeIC2XbvZ2s+aNYsGDRqwbNkyG5872DnP6yyf+4plLHvzTWYPGcLbb7+dsH+HhM/9u+9qxOceDwafe58+fejQoQMLFiyga9euJp87WGRUe7/+b8JzJXO/h5rP3Q21xefu9/sZOHAgAwcOpEGDBixdupT+/fvj8XhsBS4Ms5dRhNzooxtSISz0O+ohRCIRVFVl9OjR5o5m7969lJWV8fHHH9fY5l6nIUkaB3wKmnvdfmUdRowZMyY+n/v/PnfU8bn3G3wmN951T7V87i+//HLCXUc8pMTnPnMmTZs2rRmfuwtEPnfQnHbNmzeP5XOvquL7778/8vncXVBTPvfVq1ezdatW3SoajfLNN9/QvHnzpO8t3hjF+zw7O9ssWJ0I/fv357XXXjOLTO/evZstW7bQrVs3PvroI3bt2kVVVVVSHD513iwDlmkmhV1GWnOPg6ZNm3LZZZfZP5Qkjc99zryjjs993759qKrK5ZdfHpfP/bHHHjMdqqkiVT53I0QwVT53NyTF5753L9FolAkTJtC+b68jm8/9vPNqjc99586d3HDDDeYc6t69uy2M1Q2ZmZmApqDEG6N4n/fp04eHH36Y4uJi06HqhuOOO47JkyczduxYVFVFkiQmT57McccdZzpzGzVqxPHHH1+tolXXzTKAJdyV5EX2H5bPvSZQVRXKSiEzK6W3/JHA554q6so9OfncDwTGPRnc7kcsn3tVJfzy02Hjcz8UcM4/wyyTm5trvlyqQ2lpKVlZWZSVlfHEE0+QnZ3NpZdeerC6XC0KCwvNnYgTkT+fC5EwUtFImv/9Jkgi2/AIeGXVHUiSpFVVr8vbtz8I9uzZQ79+/cjIyKgVwZ7GHxdHlFlGSZtl6jzqLJ/7AeJw87m7Vc9Jhs/9YOFI4XM/Uvp5MFCnhboB0+aejpap86h7fO61g8PN5364rh0Ph3M8UsGR0s+DgQOtmXpIYGru6WiZNNJI4w+EA/Ed1mmhbuBgae7BYPBMYDagAHNDodCdju8vAe4GftE/eigUCs1NuhdppJFGGocJR4RwJ3XNvVrhHgwGFeBhoBjYDKwKBoOLQ6HQN46m80OhUPzYpTTSSCONOogjwiwjHxyzTC9gfSgU2hAKhSqBF4CRNeheGmmkkUadQ50W6iYOjlmmGbBJ+H8z0Nul3XnBYHAAsBb4eygU2uRsEAwGJwITAUKhEIWFhbbvt23bpnXqMBY2btSoEaNGjeLhhx8GNLrUrl27csIJJ/Dcc8/V+Lw1vac1a9awdetWioqKanzt6rBu3TquvvpqVq9ezdSpU/nrX/+KqqqMGDGCa665xqRfNciYXnjhBZo0aULHjh0Jh8O0bNmShx9+2L1E2BEGj8dDlfD3kQg1GiWMJbSO1PuoDuJ9GfeqKErS92tw1YCmvXs8nhiZdCiR6PrbFRkVyM7NTf58SbRxe605vRevAs+HQqGKYDD4Z+AZYKDzoFAoNAcwqAlVZ8B+RUUFfr//sCZdZGVl8e2337Jv3z4yMzP5z3/+Q6NGjVBVtcb9OpCEny+//JKvvvrqoIZI5uTkcOutt7JkyRKi0ajZ15kzZ3LFFVfQu3dvotEoM2bM4LnnniMcDpORkcFbb70FwNVXX83cuXO5+uqrD1ofDwWcz+lITf5RI1q/DSfjkXofieB8Vsa9ivO3OlRUVNiShiKRSNwkokOBRElMhr94f1kZ8XOx7UhGuG8GWgj/NwdsqaWhUOg34d8ngH8nef24WPNFKXt3Hxg/ixO5+QpdTqyeFiARn/vvv//Oddddx88//0xGRgZ33XUXnTp1YtasWfz8889s376dDRs2cMstt/DFF1/w9ttv06RJE5566im8Xq+NP9xI5Td2CyeccAIrV65kz549zJo1ixNOOCGG33r9+vUEAgH+/Oc/AzBw4ECeeeYZAC688EJ69erFF198QadOnQgGg8yaNYudO3fy0EMP2aiLRRQWFlJYWGirgAMa019xcTGPPPIIpaWljBo1ypXoq0ePHnz77bepPIo00qhTkGW5bptnjK7VMp/7KqBdMBhsHQwGfcD5wGKxQTAYbCL8OwI4old6Ij73WbNm0aVLF5YvX86UKVNs2upPP/3Es88+y7x587jyyivp06cPK1asICMjgxUrVsTwh48ZM8bkDwdNw3r99deZPn069957Lz6fz5XfOh42btzIhAkTWL58OevXr2fhwoUsXLiQm2++mQcffLBGY3Httdfyyiuv8Pbbb/PXv/415vtIJMIHH3xQ61Wb0kjjUKJOC3awSnumwC1TbctQKBQOBoOTgKVooZDzQqHQ18Fg8Fbgs1AotBi4KhgMjgDCwC7gklT77kQyGvbBQlw+dzRO8ieeeAKAfv368fvvv7N3715A0/i9Xi8dO3YkGo2aXNcdO3Zk06ZN/PDDD6784QYMbuquXbsmzdonokWLFiaLZfv27enXrx+SJNGhQwc2bYpxgSSFrKwsRowYQSAQsJFilZeXU1xczObNmzn++OMZMGBAjc6fxkGAxws5edrPHwQHypFV54W7gdqmHwiFQm8Abzg+u1n4eyqQuFTMEQZ3Pnf3SWRMDJHP2sl1bXBQi/zhThjc6Ik43xVFMfm8ARsntyh8ZVk2zyfya9cEsizHMOcZ9VD37t3LxRdfzNNPP22WP0vj8EKSJKifuAhHGnbUfbNM6tEy6QzVOIjH537yySfz8ssvA1q90oKCAnJycpI6Zzz+8ERw8lu3aNHC5PNevXp1jSvR1xZyc3O57bbbeOyxxxIWjkgjjbqMOi3YwTTLSGn6gQOHK587mg36q6++oqioiBkzZnD//fcnfU6DP3zGjBkUFRUxePBgU9DHQ58+fVi3bh3FxcUsWrSIoUOHsnv3boqLi3n22WdtFZ9qiu3bt9OjRw/mzJnD7Nmz6dGjB/v27Uv6+C5dutCpUyezoEcaaRxpqPuau/47Bc09zed+CFBXuM9rE0fzPR3pfO4ijsbnBLH3ZVT6ys/PT7pgisHnDlqdXr/fz4UXXnhQ+psMEvK5T74Uft+JPOkmmg0ZCUnwuR+d2Q1ppHEgaNbKXnE+jaMedVprB0uU1ya3TBpHD+bPn8/cuXY+t549ezJjxozD1KO6Ccnrq75RGkcVJEmq4wL+IBCHpXH0YMyYMa7FLNJI44+OOl9HNR0tk0YaafwRcdTHudegzF5auKeRRhpHPLKzs/F6vXi93hodX+fNMukye2mkkcYfEV6v94Dq5B4xZpl0nHsaaaSRRvKo85p7DRyqaeHugi1btjB+/Hj69u1Lnz59uPnmm6msrDyo17z++utZu3ZtwjbXXHONazX6TZs28corryQ8tqysjEmTJjFo0CAGDhzI2WefTUlJSY36umTJEltm7d133817771Xo3Mli/nz57N169aDeo00/rio24IdqxLT0WCWee+999ixY0etnrNBgwbVElypqsrll1/OuHHjeOqpp4hEIkyePJl///vf3HTTTTW+djgcTlhE4J577qnxuQ3hfs4558RtM3fuXBut7/r162tcxGHJkiWoqkqbNm0AuOGGG2p0nlSwYMECOnToQOPGjQ/6tdL446HOC/caVGJKa+4OfPDBB/j9fjNkUFEU/vWvf/HCCy8wdOhQm8Y6atQovvrqK0pLS7n22msZOnQogwcPZunSpYCmbU6cOJGLLrqIsWPHsnLlSkaNGsXll1/OgAEDmDRpkunlHzVqFF9++SUAzz//PP369WPUqFHccMMNTJs2zbzmJ598wogRIzjllFNMLX7GjBl8+umnFBcXM2fOHNywfft2m2Bs27atmcn30ksvMWzYMIqLi5k8ebJJMtauXTvuvPNOioqKGD58ODt27GDVqlUsW7aM6dOnU1xczMaNG207it69ezNz5kzOOusshgwZwurVq7ngggvo06cPzz77rHn9Rx99lKFDh1JUVGS+2DZt2sSpp57KDTfcwOmnn87YsWMpKyvjtdde48svv2TSpEkUFxdTVlZW08ebRhquOBpt7nVWcz9cFLJr167l+OOPt32Wk5NDs2bNKCoq4tVXX+W4445j27ZtbN26la5duzJz5kz69u3Lvffey549exg2bBj9+/cH4PPPP+edd94hJyeHlStXsmbNGv7zn//QuHFjRo4cyapVq+jVq5d5ra1bt3L//fezZMkSsrOzCQaDdOrUyfx+27ZtLFy4kPXr1zN+/HiGDx/OP//5Tx577DGb8HRizJgxXHDBBbz++uv069eP0aNHc+yxx7Ju3ToWL17MwoUL8Xq9TJ06lZdffpnRo0dTWlrKiSeeyJQpU7j99tt57rnnuOaaayguLuaMM85gyJAhrtdq2rQpr776Krfccgt///vfWbhwIRUVFZx++umMGzeOd999lx9//JHXX38dVVW55JJL+Pjjj2nWrBk//vgjDz/8MHfffTdXXHEFb7zxBueddx5PP/00N910E926dTuQx5tGGq6o85p7OlrmwKGqquuDVlWVU045halTp3L99dfz6quvMnz4cEAzIS1btozHHnsM0Gh4f/nlF0B7SdWrV8/kwejevTtNmzYFoHPnzmzatMkm3P/73/9y8sknU69ePQCGDx/Ohg0bzO/PPPNMZFmmffv2KZmtunTpwkcffcS7777L+++/z7Bhw1i8eDEffPABq1evNrnky8vLzTqOPp+P4uJiAI4//njef//9pK5lFO7o2LEjpaWlZGdnk52djd/vZ8+ePbz77ru8++67ZrvS0lJ+/PFHmjVrRosWLejSpQug8drXlIc+jTRSQZ13qNYgzj0t3B1o3749b7xho65n3759bNmyhe7du1OvXj2++eYbFi9ebFZRUlWVOXPm0LZtW9txX3zxhUlMZMDgWAd33vbqkjHE41NN3AgEAgwdOpShQ4ciyzIrVqzA5/MxevRopk6NpeMXOekTccw7YZh7JEmy9VfktZ80aRJ/+tOfbMdt2rTJRvqkKArl5eUp3WMaadQEsizb6iTUOZjCPXmRXccNTYce/fv3p6ysjAULFgBaGblbb72VYDBIZmYmI0eO5NFHH2Xfvn0m1/upp57KU089ZQrbNWvW1Pj63bt35+OPP2b37t2Ew+GYF40bsrOzq418WbVqFbt37wagsrKStWvX0rx5c/r168drr71mstH9/vvv1VaBcnLMp4rTTjuN+fPnm33+9ddfqy1MHAgEDuiaaaSRCD179rTtoOse0g7VA4YkScydO5fXXnuNvn370r9/f/x+P1OmTAFg2LBhLFq0iLPOOss85pprrqGqqoqioiIGDhzIXXfdVePrN2nShCuvvJLhw4dz/vnn065du2qLgXTs2BFFUSgqKorrUN24cSOjRo1i0KBBnHHGGXTr1o1hw4bRvn17Jk+ezNixYykqKmLs2LFs27Yt4fVGjhzJI488wuDBg9m4cWPK93jqqady9tlnM2LECAYNGsTEiROrFdzBYJApU6akHappHBQ0b96cVq1aHe5uxIfJCpm8yE7zuR8CpMqpXVJSQiAQIBwOM2HCBM4///y4zsvDhaORJzx9T0cOauO+RD73uoCmRQrTAAAOLklEQVSEfO63/R1+/gH54QU0O6Y1pPncj0zMmjWL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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc8752ecc88>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ls_FRA = pd.DataFrame()\n",
    "\n",
    "for factor, factor_data in unixt_factor_data.items():\n",
    "    ls_FRA[factor] = al.performance.factor_rank_autocorrelation(factor_data)\n",
    "\n",
    "ls_FRA.plot(title=\"Factor Rank Autocorrelation\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Sharpe Ratio of the Alphas\n",
    "\n",
    "The last analysis we'll do on the factors will be sharpe ratio. Implement `sharpe_ratio` to calculate the sharpe ratio of factor returns."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Factor 0    3.21339895\n",
      "Factor 1   12.59157330\n",
      "Factor 2    6.54485802\n",
      "dtype: float64\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "def sharpe_ratio(factor_returns, annualization_factor):\n",
    "    \"\"\"\n",
    "    Get the sharpe ratio for each factor for the entire period\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    factor_returns : DataFrame\n",
    "        Factor returns for each factor and date\n",
    "    annualization_factor: float\n",
    "        Annualization Factor\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    sharpe_ratio : Pandas Series of floats\n",
    "        Sharpe ratio\n",
    "    \"\"\"\n",
    "#     print(factor_returns)\n",
    "#     print(annualization_factor)\n",
    "    r = factor_returns.mean() / factor_returns.std() * annualization_factor\n",
    "    print(r)\n",
    "    return r\n",
    "\n",
    "\n",
    "project_tests.test_sharpe_ratio(sharpe_ratio)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "Let's see what the sharpe ratio for the factors are. Generally, a Sharpe Ratio of near 1.0 or higher is an acceptable single alpha for this universe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean_Reversion_5Day_Sector_Neutral            1.37444291\n",
      "Mean_Reversion_5Day_Sector_Neutral_Smoothed   1.27162839\n",
      "Momentum_1YR                                  1.13368995\n",
      "Overnight_Sentiment                           0.11599384\n",
      "Overnight_Sentiment_Smoothed                  0.45154712\n",
      "dtype: float64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Mean_Reversion_5Day_Sector_Neutral            1.37000000\n",
       "Mean_Reversion_5Day_Sector_Neutral_Smoothed   1.27000000\n",
       "Momentum_1YR                                  1.13000000\n",
       "Overnight_Sentiment                           0.12000000\n",
       "Overnight_Sentiment_Smoothed                  0.45000000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "daily_annualization_factor = np.sqrt(252)\n",
    "sharpe_ratio(ls_factor_returns, daily_annualization_factor).round(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Question: What do you think would happen if we smooth the momentum factor? Would the performance increase, decrease, or no major change? Why?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The momentum factor is fairly stable according to the Momentum_1YR data on the \"Factor Rank Autocorrection\" graph, in fact, it is the most stable of the bunch with a value of around 1.0. hence, smoothing this factor will result in no major change, since it already has extremely low volatility."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Combined Alpha Vector\n",
    "\n",
    "To use these alphas in a portfolio, we need to combine them somehow so we get a single score per stock. This is a area where machine learning can be very helpful. In this module, however, we will take the simplest approach of combination: simply averaging the scores from each alpha."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Selected Factors: Mean_Reversion_5Day_Sector_Neutral_Smoothed, Momentum_1YR, Overnight_Sentiment_Smoothed\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>alpha_vector</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Equity(0 [A])</th>\n",
       "      <td>-0.58642457</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(1 [AAL])</th>\n",
       "      <td>-0.45333845</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(2 [AAP])</th>\n",
       "      <td>-0.69993898</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(3 [AAPL])</th>\n",
       "      <td>-0.06790952</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity(4 [ABBV])</th>\n",
       "      <td>-1.21617871</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  alpha_vector\n",
       "Equity(0 [A])      -0.58642457\n",
       "Equity(1 [AAL])    -0.45333845\n",
       "Equity(2 [AAP])    -0.69993898\n",
       "Equity(3 [AAPL])   -0.06790952\n",
       "Equity(4 [ABBV])   -1.21617871"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "selected_factors = all_factors.columns[[1, 2, 4]]\n",
    "print('Selected Factors: {}'.format(', '.join(selected_factors)))\n",
    "\n",
    "all_factors['alpha_vector'] = all_factors[selected_factors].mean(axis=1)\n",
    "alphas = all_factors[['alpha_vector']]\n",
    "alpha_vector = alphas.loc[all_factors.index.get_level_values(0)[-1]]\n",
    "alpha_vector.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Optimal Portfolio Constrained by Risk Model\n",
    "You have an alpha model and a risk model. Let's find a portfolio that trades as close as possible to the alpha model but limiting risk as measured by the risk model. You'll be building thie optimizer for this portfolio. To help you out. we have provided you with an abstract class called `AbstractOptimalHoldings`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "from abc import ABC, abstractmethod\n",
    "\n",
    "\n",
    "class AbstractOptimalHoldings(ABC):    \n",
    "    @abstractmethod\n",
    "    def _get_obj(self, weights, alpha_vector):\n",
    "        \"\"\"\n",
    "        Get the objective function\n",
    "\n",
    "        Parameters\n",
    "        ----------\n",
    "        weights : CVXPY Variable\n",
    "            Portfolio weights\n",
    "        alpha_vector : DataFrame\n",
    "            Alpha vector\n",
    "\n",
    "        Returns\n",
    "        -------\n",
    "        objective : CVXPY Objective\n",
    "            Objective function\n",
    "        \"\"\"\n",
    "        \n",
    "        raise NotImplementedError()\n",
    "    \n",
    "    @abstractmethod\n",
    "    def _get_constraints(self, weights, factor_betas, risk):\n",
    "        \"\"\"\n",
    "        Get the constraints\n",
    "\n",
    "        Parameters\n",
    "        ----------\n",
    "        weights : CVXPY Variable\n",
    "            Portfolio weights\n",
    "        factor_betas : 2 dimensional Ndarray\n",
    "            Factor betas\n",
    "        risk: CVXPY Atom\n",
    "            Predicted variance of the portfolio returns\n",
    "\n",
    "        Returns\n",
    "        -------\n",
    "        constraints : List of CVXPY Constraint\n",
    "            Constraints\n",
    "        \"\"\"\n",
    "        \n",
    "        raise NotImplementedError()\n",
    "        \n",
    "    def _get_risk(self, weights, factor_betas, alpha_vector_index, factor_cov_matrix, idiosyncratic_var_vector):\n",
    "        f = factor_betas.loc[alpha_vector_index].values.T * weights\n",
    "        X = factor_cov_matrix\n",
    "        S = np.diag(idiosyncratic_var_vector.loc[alpha_vector_index].values.flatten())\n",
    "\n",
    "        return cvx.quad_form(f, X) + cvx.quad_form(weights, S)\n",
    "    \n",
    "    def find(self, alpha_vector, factor_betas, factor_cov_matrix, idiosyncratic_var_vector):\n",
    "        weights = cvx.Variable(len(alpha_vector))\n",
    "        risk = self._get_risk(weights, factor_betas, alpha_vector.index, factor_cov_matrix, idiosyncratic_var_vector)\n",
    "        \n",
    "        obj = self._get_obj(weights, alpha_vector)\n",
    "        constraints = self._get_constraints(weights, factor_betas.loc[alpha_vector.index].values, risk)\n",
    "        \n",
    "        prob = cvx.Problem(obj, constraints)\n",
    "        prob.solve(max_iters=500)\n",
    "\n",
    "        optimal_weights = np.asarray(weights.value).flatten()\n",
    "        \n",
    "        return pd.DataFrame(data=optimal_weights, index=alpha_vector.index)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Objective and Constraints\n",
    "Using this class as a base class, you'll implement the `OptimalHoldings` class. There's two functions that need to be implemented in this class, the `_get_obj` and `_get_constraints` functions.\n",
    "\n",
    "The `_get_obj` function should return an CVXPY objective function that maximizes $ \\alpha^T * x \\\\ $, where $ x $ is the portfolio weights and $ \\alpha $ is the alpha vector.\n",
    "\n",
    "The `_get_constraints` function should return a list of the following constraints:\n",
    "- $ r \\leq risk_{\\text{cap}}^2 \\\\ $\n",
    "- $ B^T * x \\preceq factor_{\\text{max}} \\\\ $\n",
    "- $ B^T * x \\succeq factor_{\\text{min}} \\\\ $\n",
    "- $ x^T\\mathbb{1} = 0 \\\\ $\n",
    "- $ \\|x\\|_1 \\leq 1 \\\\ $\n",
    "- $ x \\succeq weights_{\\text{min}} \\\\ $\n",
    "- $ x \\preceq weights_{\\text{max}} $\n",
    "\n",
    "Where $ x $ is the portfolio weights, $ B $ is the factor betas, and $ r $ is the portfolio risk\n",
    "\n",
    "The first constraint is that the predicted risk be less than some maximum limit. The second and third constraints are on the maximum and minimum portfolio factor exposures. The fourth constraint is the \"market neutral constraint: the sum of the weights must be zero. The fifth constraint is the leverage constraint: the sum of the absolute value of the weights must be less than or equal to 1.0. The last are some minimum and maximum limits on individual holdings."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running Integration Test on Problem.solve:\n",
      "> constaints = [sum(weights) == 0.0, sum(cvx.abs(weights)) <= 1.0]\n",
      "> obj = optimal_holdings._get_obj(weights, alpha_vector)\n",
      "> prob = cvx.Problem(obj, constaints)\n",
      "> prob.solve(max_iters=500)\n",
      "> solution = np.asarray(weights.value).flatten()\n",
      "\n",
      "[-0.58642457 -0.45333845 -0.69993898 -0.06790952]\n",
      "Tests Passed\n",
      "\n",
      "Running Integration Test on Problem.solve:\n",
      "> x = np.diag(np.arange(3))\n",
      "> s = np.diag(np.arange(4))\n",
      "> factor_betas = np.arange(4 * 3).reshape([4, 3])\n",
      "> risk = cvx.quad_form(weights * factor_betas, x) + cvx.quad_form(weights, s)\n",
      "> constaints = optimal_holdings._get_constraints(weights, factor_betas, risk)\n",
      "> obj = cvx.Maximize([0, 1, 5, -1] * weights)\n",
      "> prob = cvx.Problem(obj, constaints)\n",
      "> prob.solve(max_iters=500)\n",
      "> solution = np.asarray(weights.value).flatten()\n",
      "\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "class OptimalHoldings(AbstractOptimalHoldings):\n",
    "    def _get_obj(self, weights, alpha_vector):\n",
    "        \"\"\"\n",
    "        Get the objective function\n",
    "\n",
    "        Parameters\n",
    "        ----------\n",
    "        weights : CVXPY Variable\n",
    "            Portfolio weights\n",
    "        alpha_vector : DataFrame\n",
    "            Alpha vector\n",
    "\n",
    "        Returns\n",
    "        -------\n",
    "        objective : CVXPY Objective\n",
    "            Objective function\n",
    "        \"\"\"\n",
    "        assert(len(alpha_vector.columns) == 1)\n",
    "#         x = np.array(alpha_vector.T)[0]\n",
    "        x = alpha_vector[alpha_vector.columns[0]].values\n",
    "        print(x)\n",
    "        obj = cvx.Maximize(x * weights)\n",
    "        return obj\n",
    "    \n",
    "    def _get_constraints(self, weights, factor_betas, risk):\n",
    "        \"\"\"\n",
    "        Get the constraints\n",
    "\n",
    "        Parameters\n",
    "        ----------\n",
    "        weights : CVXPY Variable\n",
    "            Portfolio weights\n",
    "        factor_betas : 2 dimensional Ndarray\n",
    "            Factor betas\n",
    "        risk: CVXPY Atom\n",
    "            Predicted variance of the portfolio returns\n",
    "\n",
    "        Returns\n",
    "        -------\n",
    "        constraints : List of CVXPY Constraint\n",
    "            Constraints\n",
    "        \"\"\"\n",
    "        assert(len(factor_betas.shape) == 2)\n",
    "        \n",
    "    #The following constraints will be included\n",
    "        # 𝑟≤𝑟𝑖𝑠𝑘2cap \n",
    "        # 𝐵𝑇∗𝑥⪯𝑓𝑎𝑐𝑡𝑜𝑟max \n",
    "        # 𝐵𝑇∗𝑥⪰𝑓𝑎𝑐𝑡𝑜𝑟min \n",
    "        # 𝑥𝑇𝟙=0 \n",
    "        # ‖𝑥‖1≤1 \n",
    "        # 𝑥⪯𝑤𝑒𝑖𝑔ℎ𝑡𝑠max\n",
    "        # 𝑥⪰𝑤𝑒𝑖𝑔ℎ𝑡𝑠min \n",
    "        \n",
    "        r = risk\n",
    "        x = weights\n",
    "        f = factor_betas.T\n",
    "#         print(risk)\n",
    "#         print(weights)\n",
    "#         print(factor_betas.T)\n",
    "        c = [   \n",
    "            sum(x) == 0,\n",
    "            sum(cvx.abs(x)) <= 1.0,\n",
    "            x >= self.weights_min,\n",
    "            x <= self.weights_max,\n",
    "            r <= self.risk_cap**2,\n",
    "            f * x <= self.factor_max,\n",
    "            f * x >= self.factor_min\n",
    "        ]\n",
    "        return c\n",
    "        \n",
    "\n",
    "    def __init__(self, risk_cap=0.05, factor_max=10.0, factor_min=-10.0, weights_max=0.55, weights_min=-0.55):\n",
    "        self.risk_cap=risk_cap\n",
    "        self.factor_max=factor_max\n",
    "        self.factor_min=factor_min\n",
    "        self.weights_max=weights_max\n",
    "        self.weights_min=weights_min\n",
    "\n",
    "\n",
    "project_tests.test_optimal_holdings_get_obj(OptimalHoldings)\n",
    "project_tests.test_optimal_holdings_get_constraints(OptimalHoldings)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data\n",
    "With the `OptimalHoldings` class implemented, let's see the weights it generates."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ -5.86424565e-01  -4.53338448e-01  -6.99938980e-01  -6.79095238e-02\n",
      "  -1.21617871e+00  -1.05210547e-02  -3.89503458e-01  -2.14069929e-01\n",
      "  -6.82089102e-02   8.04344809e-01  -7.79103616e-01   4.50701879e-01\n",
      "  -3.01758833e-01   2.64408800e-01   3.06836783e-01  -4.79346398e-01\n",
      "  -2.89805864e-01   1.08962640e+00  -4.91476997e-01  -1.13382541e-01\n",
      "  -3.52560719e-01   1.20930390e-01   3.09125456e-01  -5.22689007e-01\n",
      "   2.83323501e-01  -4.37773663e-01   4.76257087e-01   5.81602453e-01\n",
      "   2.41415589e-01   4.82583023e-01  -2.88097842e-01  -4.85102007e-01\n",
      "   1.65444556e-01   5.37336731e-01  -4.07255686e-01   5.68057754e-01\n",
      "  -3.56517401e-01   5.01980197e-01   5.80347184e-01   4.68221382e-01\n",
      "  -5.15422518e-02   3.84833429e-01  -4.01975285e-01   3.61284438e-01\n",
      "  -2.51433327e-01  -3.05970049e-01  -6.03108017e-02   7.25343247e-01\n",
      "   5.86034232e-01  -8.95545480e-01   1.35820733e+00  -2.58448367e-01\n",
      "   8.72043766e-01   7.96963104e-01   1.41201602e-01  -6.02513664e-01\n",
      "   1.47739973e+00   2.30665754e-01  -3.86914752e-01   4.17989782e-01\n",
      "  -7.01706986e-01  -1.15397859e-01  -2.37655368e-01   5.25378277e-01\n",
      "   9.19349016e-01  -1.44555799e+00  -4.81275679e-01   3.84946523e-02\n",
      "  -1.81071194e-01  -5.05545898e-01  -1.97267493e-01   4.87314310e-01\n",
      "  -5.61676733e-01   2.81930070e-01   1.74053083e-01  -3.94919606e-01\n",
      "  -7.24116485e-01  -5.78267598e-01   8.85728358e-02  -2.90718005e-01\n",
      "   2.85846738e-01   3.05150581e-01  -8.20345396e-01   5.74125509e-01\n",
      "   6.88430258e-01  -3.72091079e-02   4.97105262e-01  -4.10020113e-01\n",
      "   3.95250555e-02   6.30479917e-01  -1.33408921e+00   6.51612377e-01\n",
      "   5.36006345e-01   3.62520271e-01   6.20788326e-01  -7.96996430e-01\n",
      "   8.12727268e-01  -2.37791712e-01   1.19238302e+00   8.00148150e-01\n",
      "  -4.17190347e-01  -1.15062482e+00   1.52451516e-01   4.94842713e-01\n",
      "  -6.02182123e-01  -1.93325409e-01  -3.64370738e-01  -1.63089837e-01\n",
      "  -4.73573879e-01   8.34576428e-03   3.96741556e-01   3.93291641e-01\n",
      "   2.73588907e-01   4.04842781e-01  -2.61622553e-01  -1.68608743e+00\n",
      "  -9.71448630e-01   7.92608817e-01  -3.01770359e-01  -4.49217578e-02\n",
      "   5.86086984e-01   1.27674520e-01   5.45165198e-01   5.88264743e-02\n",
      "   9.33783431e-01   5.28048181e-01  -2.48170312e-03   1.83619220e-01\n",
      "   5.60462383e-02  -1.40662742e-01   3.78491781e-02   8.63466527e-02\n",
      "   1.22869296e+00  -5.90955221e-01   1.69317156e+00   5.72084107e-01\n",
      "   1.15954297e-01   2.79363831e-01  -5.47218075e-01   4.67548592e-01\n",
      "   1.34391385e-01   1.43024050e+00  -1.80163840e-01   2.18287227e-01\n",
      "  -2.93347917e-01  -6.82426812e-01   1.01800963e+00   4.56252028e-01\n",
      "   5.89490268e-01  -2.27767913e-01   1.29090360e+00   4.69937222e-01\n",
      "  -5.40306063e-01  -6.33018296e-01  -1.13175494e+00   1.41644656e-01\n",
      "   7.00222649e-01   4.07526586e-01  -2.10229712e-01   8.67758251e-01\n",
      "   3.91776332e-01   7.32711424e-02   1.06383291e-01   5.73929690e-02\n",
      "  -7.72199443e-01  -5.58200130e-01   9.36072690e-01  -6.87503519e-01\n",
      "   8.42779775e-01   1.00608634e+00   1.32071913e+00   1.47611705e-01\n",
      "  -2.41860513e-01   8.81572334e-01   1.17109548e-01  -1.69282470e-01\n",
      "  -4.63856184e-01  -1.37334028e-01  -4.36250545e-01  -7.43440946e-01\n",
      "   1.37950284e+00   5.22956639e-02   9.12589754e-01  -1.32662777e-01\n",
      "  -9.32208763e-01  -9.94331529e-01  -2.98311939e-01   2.07856143e-01\n",
      "   1.41038717e+00   6.77070022e-01  -6.37002848e-01   9.61182398e-01\n",
      "  -4.06712552e-01  -4.02943856e-01   6.01797214e-01   3.38415836e-02\n",
      "  -3.75111502e-01  -7.92488776e-01   1.68610195e+00   6.30406003e-01\n",
      "  -9.16684001e-01   4.54360982e-01   3.49136200e-01  -1.54471254e+00\n",
      "  -3.58903020e-01   2.45641383e-01  -6.05745410e-01   6.72620625e-01\n",
      "   3.76866780e-01  -2.61014597e-01   3.33071456e-04  -4.31023472e-01\n",
      "  -5.81949733e-01  -9.13147989e-01   1.08187077e-01   2.67746522e-03\n",
      "  -3.32622291e-01  -2.04643824e-01   3.64003962e-01   2.80074855e-01\n",
      "   6.88282368e-01   3.19589875e-01  -1.51989342e+00  -6.22395744e-01\n",
      "   5.83523754e-01   6.14077562e-01   7.20548390e-01   5.36939446e-02\n",
      "   1.02164730e-01  -6.38741165e-01   1.62236488e-01  -6.49572865e-01\n",
      "   1.59696281e-01  -6.42303846e-01   1.67481108e-01  -8.20112048e-02\n",
      "   7.13255752e-01  -3.23632532e-01   3.67410297e-01  -1.26669594e-01\n",
      "  -2.42379351e-01   8.79374588e-01  -4.28686957e-01  -9.12534608e-01\n",
      "   2.57668903e-01  -4.77168057e-01   5.58500093e-01  -1.01195220e+00\n",
      "  -8.28562973e-01  -9.32076652e-01  -3.60235235e-01  -3.55590046e-01\n",
      "   6.61887105e-01   4.55414367e-01   7.47487918e-02  -1.23756696e+00\n",
      "  -5.25134016e-01   1.40126644e-01   1.37335220e-01  -5.16483071e-01\n",
      "  -6.20577996e-01  -5.56853935e-01  -1.07835830e+00  -4.43996540e-01\n",
      "   1.89031721e-01   5.92268666e-01  -1.17413078e+00  -1.52463592e+00\n",
      "  -3.94280585e-02  -5.01803829e-01   1.74117340e-01   1.92691430e-01\n",
      "  -4.16869814e-02  -6.20148862e-01  -2.39063168e-02   9.17684079e-01\n",
      "   6.38272038e-01  -3.19166159e-02   2.60829158e-01  -4.67564455e-02\n",
      "   6.40850985e-01  -9.60493274e-01   5.85728168e-01  -4.75195166e-01\n",
      "   6.08120736e-01  -7.90102541e-01  -2.30692403e-01   1.20849148e+00\n",
      "  -4.29893081e-01  -3.90115617e-01   2.41825369e-01  -4.91821892e-01\n",
      "  -1.31016547e-01  -9.85341857e-02   1.98353637e-01  -3.84497614e-01\n",
      "   2.08761709e-01   4.45100262e-01  -5.24763704e-01  -7.90092237e-01\n",
      "   4.67591040e-01  -3.88863994e-01   1.57132723e+00  -3.66075072e-01\n",
      "   7.64450386e-01  -1.42467720e-01  -4.31271996e-01   2.43315100e-01\n",
      "   6.83371127e-01  -9.04720082e-01  -6.38341062e-02  -2.95608062e-01\n",
      "   2.10193942e-01   5.79294961e-01  -1.51914474e-01  -3.19866199e-01\n",
      "  -6.47697579e-01  -4.75599470e-01   1.99061551e-01   3.53555352e-01\n",
      "   5.74813431e-01   3.46630006e-01  -2.17137451e-01   1.49447068e+00\n",
      "   2.25213846e-01  -4.05619144e-01   1.62070600e+00   1.57729472e-01\n",
      "   6.95636868e-01  -1.75658673e-01  -1.48629310e+00   4.50126056e-01\n",
      "  -8.14109810e-01   1.93910323e-01  -2.34612697e-01   1.99733347e-02\n",
      "   6.68977918e-01  -3.99432957e-01  -5.46574379e-01   9.88863441e-02\n",
      "  -3.86936036e-01  -5.93597820e-01  -3.95100237e-01   9.64795513e-02\n",
      "   4.01162515e-01   4.57607870e-01  -6.02634850e-02   4.43320047e-02\n",
      "   5.05719265e-01  -7.29599951e-01  -4.40465973e-01  -3.66190233e-01\n",
      "  -7.26183541e-02   2.32216117e-01  -6.00289921e-02  -2.04709848e-01\n",
      "   8.33725758e-01  -1.79734121e-01  -3.89068899e-01  -6.37801215e-02\n",
      "  -1.86326040e-02  -4.99276956e-01   7.20389454e-02  -8.03669029e-01\n",
      "  -6.24692831e-01  -1.10912713e-01   5.05993236e-01   5.41067880e-01\n",
      "   3.69205804e-02   1.39827391e+00   8.29130320e-01  -5.98174706e-02\n",
      "  -9.27282350e-01  -3.32281689e-01  -5.05699849e-01  -3.93337685e-02\n",
      "  -7.41995440e-01  -3.90805984e-01  -5.73767299e-01   1.24816733e-01\n",
      "   3.34105437e-01  -9.70613436e-02  -2.99767779e-01  -6.20147690e-01\n",
      "  -1.84430192e-01  -2.18875141e-01   1.14182583e-01   3.96853049e-01\n",
      "   6.14447991e-02  -3.38932428e-01  -1.06759016e-01  -7.79289084e-01\n",
      "   1.08652538e-01   1.26416648e+00  -6.21475025e-01   6.68290017e-01\n",
      "   7.32865043e-01   1.04438897e-01  -5.88794446e-01  -8.59424864e-03\n",
      "  -3.98671413e-01   5.72555094e-01   2.51906490e-02  -4.39981102e-02\n",
      "   7.54185397e-01  -5.39612582e-02  -6.19696100e-01   3.98775653e-01\n",
      "   6.16353436e-01   3.23371738e-02  -5.54065243e-01  -1.24138508e-01\n",
      "   3.28795368e-01   1.40958577e-02  -1.09868526e+00   5.78646456e-01\n",
      "   4.79937979e-01  -5.08531075e-02   2.82372549e-01  -1.03697021e-01\n",
      "  -1.09753547e+00  -1.61301850e-01   8.02866553e-01   3.09896405e-01\n",
      "   3.90063512e-01   3.49254422e-01  -1.81042717e-01   1.47622009e-01\n",
      "  -5.21162458e-02   1.61487650e-02  -2.00581699e-01   5.05794422e-01\n",
      "  -8.03013817e-01  -3.14862389e-02  -1.30084374e-01   2.52475853e-01\n",
      "   1.17165668e+00  -6.87729618e-01   9.50534338e-01   1.51040487e-01\n",
      "   1.22546727e+00   3.57752508e-03   1.40814895e-01  -3.14922805e-01\n",
      "   1.24224367e+00   9.20630944e-01  -3.91743016e-01  -9.17029493e-01\n",
      "  -2.92357527e-01  -7.52549512e-01   2.55413596e-01  -9.19834529e-01\n",
      "   7.42900934e-01  -3.94225633e-01  -5.31347822e-01  -2.64391889e-01\n",
      "   1.04059736e+00   9.33221589e-01  -1.44685498e-01   7.98177108e-01\n",
      "   6.04585350e-01  -3.14861628e-01  -3.18063089e-01  -8.79868555e-01\n",
      "   9.30144135e-02   3.73354991e-01  -6.75847553e-01  -2.98894964e-01\n",
      "   2.49331346e-01  -2.72610043e-01  -2.93257576e-01  -1.11132072e+00\n",
      "  -1.43473417e+00  -1.50905648e-01   3.24898721e-01   9.25131320e-02\n",
      "  -6.94581009e-01  -1.34087698e+00   2.61684982e-01   1.47517203e-01\n",
      "   1.77527293e-01   6.09315970e-01   4.48956925e-01   2.15879807e-01\n",
      "  -2.72071214e-01   6.86362825e-01  -1.16994327e-01  -9.94301810e-01\n",
      "   8.59684315e-02   3.91177310e-02]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py:106: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  warnings.warn(message, mplDeprecation, stacklevel=1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc866e73a20>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "optimal_weights = OptimalHoldings().find(alpha_vector, risk_model['factor_betas'], risk_model['factor_cov_matrix'], risk_model['idiosyncratic_var_vector'])\n",
    "\n",
    "optimal_weights.plot.bar(legend=None, title='Portfolio % Holdings by Stock')\n",
    "x_axis = plt.axes().get_xaxis()\n",
    "x_axis.set_visible(False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Yikes. It put most of the weight in a few stocks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc86632e668>"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc8660fb400>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "project_helper.get_factor_exposures(risk_model['factor_betas'], optimal_weights).plot.bar(\n",
    "    title='Portfolio Net Factor Exposures',\n",
    "    legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Optimize with a Regularization Parameter\n",
    "In order to enforce diversification, we'll use regularization in the objective function. We'll create a new class called `OptimalHoldingsRegualization` which gets its constraints from the `OptimalHoldings` class. In this new class, implement the `_get_obj` function to return a CVXPY objective function that maximize $ \\alpha^T * x + \\lambda\\|x\\|_2\\\\ $, where $ x $ is the portfolio weights, $ \\alpha $ is the alpha vector, and $ \\lambda $ is the regularization parameter.\n",
    "\n",
    "**Note:** * $ \\lambda $ is located in `self.lambda_reg`. *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running Integration Test on Problem.solve:\n",
      "> constaints = [sum(weights) == 0.0, sum(cvx.abs(weights)) <= 1.0]\n",
      "> obj = optimal_holdings_regualization._get_obj(weights, alpha_vector)\n",
      "> prob = cvx.Problem(obj, constaints)\n",
      "> prob.solve(max_iters=500)\n",
      "> solution = np.asarray(weights.value).flatten()\n",
      "\n",
      "maximize [-0.58642457 -0.45333845 -0.69993898 -0.06790952] * var14139 + -0.5 * Pnorm(var14139, 2)\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "class OptimalHoldingsRegualization(OptimalHoldings):\n",
    "    def _get_obj(self, weights, alpha_vector):\n",
    "        \"\"\"\n",
    "        Get the objective function\n",
    "\n",
    "        Parameters\n",
    "        ----------\n",
    "        weights : CVXPY Variable\n",
    "            Portfolio weights\n",
    "        alpha_vector : DataFrame\n",
    "            Alpha vector\n",
    "\n",
    "        Returns\n",
    "        -------\n",
    "        objective : CVXPY Objective\n",
    "            Objective function\n",
    "        \"\"\"\n",
    "        assert(len(alpha_vector.columns) == 1)\n",
    "        \n",
    "#         print(weights)\n",
    "#         print(alpha_vector)\n",
    "\n",
    "        av = alpha_vector[alpha_vector.columns[0]].values\n",
    "        # this is the same as np.array(alpha_vector.T)[0]\n",
    "#         print(av)\n",
    "        x = cvx.Maximize(av * weights - self.lambda_reg * cvx.norm(weights,2))\n",
    "        print(x)\n",
    "        return x\n",
    "\n",
    "    def __init__(self, lambda_reg=0.5, risk_cap=0.05, factor_max=10.0, factor_min=-10.0, weights_max=0.55, weights_min=-0.55):\n",
    "        self.lambda_reg = lambda_reg\n",
    "        self.risk_cap=risk_cap\n",
    "        self.factor_max=factor_max\n",
    "        self.factor_min=factor_min\n",
    "        self.weights_max=weights_max\n",
    "        self.weights_min=weights_min\n",
    "        \n",
    "\n",
    "project_tests.test_optimal_holdings_regualization_get_obj(OptimalHoldingsRegualization)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "maximize [ -5.86424565e-01  -4.53338448e-01  -6.99938980e-01  -6.79095238e-02\n",
      "  -1.21617871e+00  -1.05210547e-02  -3.89503458e-01  -2.14069929e-01\n",
      "  -6.82089102e-02   8.04344809e-01  -7.79103616e-01   4.50701879e-01\n",
      "  -3.01758833e-01   2.64408800e-01   3.06836783e-01  -4.79346398e-01\n",
      "  -2.89805864e-01   1.08962640e+00  -4.91476997e-01  -1.13382541e-01\n",
      "  -3.52560719e-01   1.20930390e-01   3.09125456e-01  -5.22689007e-01\n",
      "   2.83323501e-01  -4.37773663e-01   4.76257087e-01   5.81602453e-01\n",
      "   2.41415589e-01   4.82583023e-01  -2.88097842e-01  -4.85102007e-01\n",
      "   1.65444556e-01   5.37336731e-01  -4.07255686e-01   5.68057754e-01\n",
      "  -3.56517401e-01   5.01980197e-01   5.80347184e-01   4.68221382e-01\n",
      "  -5.15422518e-02   3.84833429e-01  -4.01975285e-01   3.61284438e-01\n",
      "  -2.51433327e-01  -3.05970049e-01  -6.03108017e-02   7.25343247e-01\n",
      "   5.86034232e-01  -8.95545480e-01   1.35820733e+00  -2.58448367e-01\n",
      "   8.72043766e-01   7.96963104e-01   1.41201602e-01  -6.02513664e-01\n",
      "   1.47739973e+00   2.30665754e-01  -3.86914752e-01   4.17989782e-01\n",
      "  -7.01706986e-01  -1.15397859e-01  -2.37655368e-01   5.25378277e-01\n",
      "   9.19349016e-01  -1.44555799e+00  -4.81275679e-01   3.84946523e-02\n",
      "  -1.81071194e-01  -5.05545898e-01  -1.97267493e-01   4.87314310e-01\n",
      "  -5.61676733e-01   2.81930070e-01   1.74053083e-01  -3.94919606e-01\n",
      "  -7.24116485e-01  -5.78267598e-01   8.85728358e-02  -2.90718005e-01\n",
      "   2.85846738e-01   3.05150581e-01  -8.20345396e-01   5.74125509e-01\n",
      "   6.88430258e-01  -3.72091079e-02   4.97105262e-01  -4.10020113e-01\n",
      "   3.95250555e-02   6.30479917e-01  -1.33408921e+00   6.51612377e-01\n",
      "   5.36006345e-01   3.62520271e-01   6.20788326e-01  -7.96996430e-01\n",
      "   8.12727268e-01  -2.37791712e-01   1.19238302e+00   8.00148150e-01\n",
      "  -4.17190347e-01  -1.15062482e+00   1.52451516e-01   4.94842713e-01\n",
      "  -6.02182123e-01  -1.93325409e-01  -3.64370738e-01  -1.63089837e-01\n",
      "  -4.73573879e-01   8.34576428e-03   3.96741556e-01   3.93291641e-01\n",
      "   2.73588907e-01   4.04842781e-01  -2.61622553e-01  -1.68608743e+00\n",
      "  -9.71448630e-01   7.92608817e-01  -3.01770359e-01  -4.49217578e-02\n",
      "   5.86086984e-01   1.27674520e-01   5.45165198e-01   5.88264743e-02\n",
      "   9.33783431e-01   5.28048181e-01  -2.48170312e-03   1.83619220e-01\n",
      "   5.60462383e-02  -1.40662742e-01   3.78491781e-02   8.63466527e-02\n",
      "   1.22869296e+00  -5.90955221e-01   1.69317156e+00   5.72084107e-01\n",
      "   1.15954297e-01   2.79363831e-01  -5.47218075e-01   4.67548592e-01\n",
      "   1.34391385e-01   1.43024050e+00  -1.80163840e-01   2.18287227e-01\n",
      "  -2.93347917e-01  -6.82426812e-01   1.01800963e+00   4.56252028e-01\n",
      "   5.89490268e-01  -2.27767913e-01   1.29090360e+00   4.69937222e-01\n",
      "  -5.40306063e-01  -6.33018296e-01  -1.13175494e+00   1.41644656e-01\n",
      "   7.00222649e-01   4.07526586e-01  -2.10229712e-01   8.67758251e-01\n",
      "   3.91776332e-01   7.32711424e-02   1.06383291e-01   5.73929690e-02\n",
      "  -7.72199443e-01  -5.58200130e-01   9.36072690e-01  -6.87503519e-01\n",
      "   8.42779775e-01   1.00608634e+00   1.32071913e+00   1.47611705e-01\n",
      "  -2.41860513e-01   8.81572334e-01   1.17109548e-01  -1.69282470e-01\n",
      "  -4.63856184e-01  -1.37334028e-01  -4.36250545e-01  -7.43440946e-01\n",
      "   1.37950284e+00   5.22956639e-02   9.12589754e-01  -1.32662777e-01\n",
      "  -9.32208763e-01  -9.94331529e-01  -2.98311939e-01   2.07856143e-01\n",
      "   1.41038717e+00   6.77070022e-01  -6.37002848e-01   9.61182398e-01\n",
      "  -4.06712552e-01  -4.02943856e-01   6.01797214e-01   3.38415836e-02\n",
      "  -3.75111502e-01  -7.92488776e-01   1.68610195e+00   6.30406003e-01\n",
      "  -9.16684001e-01   4.54360982e-01   3.49136200e-01  -1.54471254e+00\n",
      "  -3.58903020e-01   2.45641383e-01  -6.05745410e-01   6.72620625e-01\n",
      "   3.76866780e-01  -2.61014597e-01   3.33071456e-04  -4.31023472e-01\n",
      "  -5.81949733e-01  -9.13147989e-01   1.08187077e-01   2.67746522e-03\n",
      "  -3.32622291e-01  -2.04643824e-01   3.64003962e-01   2.80074855e-01\n",
      "   6.88282368e-01   3.19589875e-01  -1.51989342e+00  -6.22395744e-01\n",
      "   5.83523754e-01   6.14077562e-01   7.20548390e-01   5.36939446e-02\n",
      "   1.02164730e-01  -6.38741165e-01   1.62236488e-01  -6.49572865e-01\n",
      "   1.59696281e-01  -6.42303846e-01   1.67481108e-01  -8.20112048e-02\n",
      "   7.13255752e-01  -3.23632532e-01   3.67410297e-01  -1.26669594e-01\n",
      "  -2.42379351e-01   8.79374588e-01  -4.28686957e-01  -9.12534608e-01\n",
      "   2.57668903e-01  -4.77168057e-01   5.58500093e-01  -1.01195220e+00\n",
      "  -8.28562973e-01  -9.32076652e-01  -3.60235235e-01  -3.55590046e-01\n",
      "   6.61887105e-01   4.55414367e-01   7.47487918e-02  -1.23756696e+00\n",
      "  -5.25134016e-01   1.40126644e-01   1.37335220e-01  -5.16483071e-01\n",
      "  -6.20577996e-01  -5.56853935e-01  -1.07835830e+00  -4.43996540e-01\n",
      "   1.89031721e-01   5.92268666e-01  -1.17413078e+00  -1.52463592e+00\n",
      "  -3.94280585e-02  -5.01803829e-01   1.74117340e-01   1.92691430e-01\n",
      "  -4.16869814e-02  -6.20148862e-01  -2.39063168e-02   9.17684079e-01\n",
      "   6.38272038e-01  -3.19166159e-02   2.60829158e-01  -4.67564455e-02\n",
      "   6.40850985e-01  -9.60493274e-01   5.85728168e-01  -4.75195166e-01\n",
      "   6.08120736e-01  -7.90102541e-01  -2.30692403e-01   1.20849148e+00\n",
      "  -4.29893081e-01  -3.90115617e-01   2.41825369e-01  -4.91821892e-01\n",
      "  -1.31016547e-01  -9.85341857e-02   1.98353637e-01  -3.84497614e-01\n",
      "   2.08761709e-01   4.45100262e-01  -5.24763704e-01  -7.90092237e-01\n",
      "   4.67591040e-01  -3.88863994e-01   1.57132723e+00  -3.66075072e-01\n",
      "   7.64450386e-01  -1.42467720e-01  -4.31271996e-01   2.43315100e-01\n",
      "   6.83371127e-01  -9.04720082e-01  -6.38341062e-02  -2.95608062e-01\n",
      "   2.10193942e-01   5.79294961e-01  -1.51914474e-01  -3.19866199e-01\n",
      "  -6.47697579e-01  -4.75599470e-01   1.99061551e-01   3.53555352e-01\n",
      "   5.74813431e-01   3.46630006e-01  -2.17137451e-01   1.49447068e+00\n",
      "   2.25213846e-01  -4.05619144e-01   1.62070600e+00   1.57729472e-01\n",
      "   6.95636868e-01  -1.75658673e-01  -1.48629310e+00   4.50126056e-01\n",
      "  -8.14109810e-01   1.93910323e-01  -2.34612697e-01   1.99733347e-02\n",
      "   6.68977918e-01  -3.99432957e-01  -5.46574379e-01   9.88863441e-02\n",
      "  -3.86936036e-01  -5.93597820e-01  -3.95100237e-01   9.64795513e-02\n",
      "   4.01162515e-01   4.57607870e-01  -6.02634850e-02   4.43320047e-02\n",
      "   5.05719265e-01  -7.29599951e-01  -4.40465973e-01  -3.66190233e-01\n",
      "  -7.26183541e-02   2.32216117e-01  -6.00289921e-02  -2.04709848e-01\n",
      "   8.33725758e-01  -1.79734121e-01  -3.89068899e-01  -6.37801215e-02\n",
      "  -1.86326040e-02  -4.99276956e-01   7.20389454e-02  -8.03669029e-01\n",
      "  -6.24692831e-01  -1.10912713e-01   5.05993236e-01   5.41067880e-01\n",
      "   3.69205804e-02   1.39827391e+00   8.29130320e-01  -5.98174706e-02\n",
      "  -9.27282350e-01  -3.32281689e-01  -5.05699849e-01  -3.93337685e-02\n",
      "  -7.41995440e-01  -3.90805984e-01  -5.73767299e-01   1.24816733e-01\n",
      "   3.34105437e-01  -9.70613436e-02  -2.99767779e-01  -6.20147690e-01\n",
      "  -1.84430192e-01  -2.18875141e-01   1.14182583e-01   3.96853049e-01\n",
      "   6.14447991e-02  -3.38932428e-01  -1.06759016e-01  -7.79289084e-01\n",
      "   1.08652538e-01   1.26416648e+00  -6.21475025e-01   6.68290017e-01\n",
      "   7.32865043e-01   1.04438897e-01  -5.88794446e-01  -8.59424864e-03\n",
      "  -3.98671413e-01   5.72555094e-01   2.51906490e-02  -4.39981102e-02\n",
      "   7.54185397e-01  -5.39612582e-02  -6.19696100e-01   3.98775653e-01\n",
      "   6.16353436e-01   3.23371738e-02  -5.54065243e-01  -1.24138508e-01\n",
      "   3.28795368e-01   1.40958577e-02  -1.09868526e+00   5.78646456e-01\n",
      "   4.79937979e-01  -5.08531075e-02   2.82372549e-01  -1.03697021e-01\n",
      "  -1.09753547e+00  -1.61301850e-01   8.02866553e-01   3.09896405e-01\n",
      "   3.90063512e-01   3.49254422e-01  -1.81042717e-01   1.47622009e-01\n",
      "  -5.21162458e-02   1.61487650e-02  -2.00581699e-01   5.05794422e-01\n",
      "  -8.03013817e-01  -3.14862389e-02  -1.30084374e-01   2.52475853e-01\n",
      "   1.17165668e+00  -6.87729618e-01   9.50534338e-01   1.51040487e-01\n",
      "   1.22546727e+00   3.57752508e-03   1.40814895e-01  -3.14922805e-01\n",
      "   1.24224367e+00   9.20630944e-01  -3.91743016e-01  -9.17029493e-01\n",
      "  -2.92357527e-01  -7.52549512e-01   2.55413596e-01  -9.19834529e-01\n",
      "   7.42900934e-01  -3.94225633e-01  -5.31347822e-01  -2.64391889e-01\n",
      "   1.04059736e+00   9.33221589e-01  -1.44685498e-01   7.98177108e-01\n",
      "   6.04585350e-01  -3.14861628e-01  -3.18063089e-01  -8.79868555e-01\n",
      "   9.30144135e-02   3.73354991e-01  -6.75847553e-01  -2.98894964e-01\n",
      "   2.49331346e-01  -2.72610043e-01  -2.93257576e-01  -1.11132072e+00\n",
      "  -1.43473417e+00  -1.50905648e-01   3.24898721e-01   9.25131320e-02\n",
      "  -6.94581009e-01  -1.34087698e+00   2.61684982e-01   1.47517203e-01\n",
      "   1.77527293e-01   6.09315970e-01   4.48956925e-01   2.15879807e-01\n",
      "  -2.72071214e-01   6.86362825e-01  -1.16994327e-01  -9.94301810e-01\n",
      "   8.59684315e-02   3.91177310e-02] * var14197 + -5.0 * Pnorm(var14197, 2)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py:106: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  warnings.warn(message, mplDeprecation, stacklevel=1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc86faf1da0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "optimal_weights_1 = OptimalHoldingsRegualization(lambda_reg=5.0).find(alpha_vector, risk_model['factor_betas'], risk_model['factor_cov_matrix'], risk_model['idiosyncratic_var_vector'])\n",
    "\n",
    "optimal_weights_1.plot.bar(legend=None, title='Portfolio % Holdings by Stock')\n",
    "x_axis = plt.axes().get_xaxis()\n",
    "x_axis.set_visible(False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Nice. Well diversified."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc865e4f780>"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc865dfb9b0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "project_helper.get_factor_exposures(risk_model['factor_betas'], optimal_weights_1).plot.bar(\n",
    "    title='Portfolio Net Factor Exposures',\n",
    "    legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Optimize with a Strict Factor Constraints and Target Weighting\n",
    "Another common formulation is to take a predefined target weighting, $x^*$ (e.g., a quantile portfolio), and solve to get as close to that portfolio while respecting portfolio-level constraints. For this next class, `OptimalHoldingsStrictFactor`, you'll implement the `_get_obj` function to minimize on on $ \\|x - x^*\\|_2 $, where $ x $ is the portfolio weights  $ x^* $ is the target weighting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running Integration Test on Problem.solve:\n",
      "> constaints = [sum(weights) == 0.0, sum(cvx.abs(weights)) <= 1.0]\n",
      "> obj = optimal_holdings_strict_factor._get_obj(weights, alpha_vector)\n",
      "> prob = cvx.Problem(obj, constaints)\n",
      "> prob.solve(max_iters=500)\n",
      "> solution = np.asarray(weights.value).flatten()\n",
      "\n",
      "minimize Pnorm(var18741 + -[-0.07441958 -0.00079418 -0.13721759  0.21243135], 2)\n",
      "Tests Passed\n"
     ]
    }
   ],
   "source": [
    "class OptimalHoldingsStrictFactor(OptimalHoldings):\n",
    "    def _get_obj(self, weights, alpha_vector):\n",
    "        \"\"\"\n",
    "        Get the objective function\n",
    "\n",
    "        Parameters\n",
    "        ----------\n",
    "        weights : CVXPY Variable\n",
    "            Portfolio weights\n",
    "        alpha_vector : DataFrame\n",
    "            Alpha vector\n",
    "\n",
    "        Returns\n",
    "        -------\n",
    "        objective : CVXPY Objective\n",
    "            Objective function\n",
    "        \"\"\"\n",
    "        assert(len(alpha_vector.columns) == 1)\n",
    "        \n",
    "#         print(weights)\n",
    "#         print(alpha_vector)\n",
    "        d = alpha_vector - alpha_vector.mean()\n",
    "        s = sum(abs(alpha_vector.values))\n",
    "        a = d/s\n",
    "        r = cvx.Minimize(cvx.norm(weights - a[\"alpha_vector\"],2))\n",
    "        print(r)\n",
    "        return r\n",
    "\n",
    "\n",
    "project_tests.test_optimal_holdings_strict_factor_get_obj(OptimalHoldingsStrictFactor)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "minimize Pnorm(var18799 + -[ -2.50950684e-03  -1.94417879e-03  -2.99169751e-03  -3.06939760e-04\n",
      "  -5.18459946e-03  -6.31629308e-05  -1.67301819e-03  -9.27805256e-04\n",
      "  -3.08211505e-04   3.39825397e-03  -3.32797593e-03   1.89603665e-03\n",
      "  -1.30029338e-03   1.10469412e-03   1.28492125e-03  -2.05465630e-03\n",
      "  -1.24951912e-03   4.61008350e-03  -2.10618510e-03  -5.00101700e-04\n",
      "  -1.51609148e-03   4.95221306e-04   1.29464316e-03  -2.23876862e-03\n",
      "   1.18504068e-03  -1.87806212e-03   2.00459099e-03   2.45208088e-03\n",
      "   1.00702272e-03   2.03146254e-03  -1.24226372e-03  -2.07910519e-03\n",
      "   6.84310201e-04   2.26404733e-03  -1.74842675e-03   2.39454521e-03\n",
      "  -1.53289881e-03   2.11385856e-03   2.44674870e-03   1.97045663e-03\n",
      "  -2.37414266e-04   1.61623825e-03  -1.72599647e-03   1.51620599e-03\n",
      "  -1.08651886e-03  -1.31818193e-03  -2.74661632e-04   3.06266826e-03\n",
      "   2.47090635e-03  -3.82260193e-03   5.75097139e-03  -1.11631760e-03\n",
      "   3.68582807e-03   3.36689770e-03   5.81330097e-04  -2.57785070e-03\n",
      "   6.25728117e-03   9.61359183e-04  -1.66202179e-03   1.75708101e-03\n",
      "  -2.99920771e-03  -5.08662443e-04  -1.02799234e-03   2.21324977e-03\n",
      "   3.88677303e-03  -6.15896510e-03  -2.06285157e-03   1.45047775e-04\n",
      "  -7.87632025e-04  -2.16594749e-03  -8.56431253e-04   2.05156027e-03\n",
      "  -2.40438210e-03   1.17912161e-03   7.20877815e-04  -1.69602510e-03\n",
      "  -3.09439960e-03  -2.47485738e-03   3.57771708e-04  -1.25339375e-03\n",
      "   1.19575898e-03   1.27775855e-03  -3.50316427e-03   2.42032004e-03\n",
      "   2.90586792e-03  -1.76529415e-04   2.09315063e-03  -1.76016959e-03\n",
      "   1.49424759e-04   2.65970435e-03  -5.68546395e-03   2.74947158e-03\n",
      "   2.25839607e-03   1.52145560e-03   2.61853606e-03  -3.40398168e-03\n",
      "   3.43386129e-03  -1.02857151e-03   5.04657681e-03   3.38042725e-03\n",
      "  -1.79062757e-03  -4.90613725e-03   6.29117893e-04   2.08353969e-03\n",
      "  -2.57644237e-03  -8.39685927e-04  -1.56625851e-03  -7.11250163e-04\n",
      "  -2.03013559e-03   1.69802303e-05   1.66682202e-03   1.65216735e-03\n",
      "   1.14368972e-03   1.70123470e-03  -1.12980102e-03  -7.18069484e-03\n",
      "  -4.14502609e-03   3.34840140e-03  -1.30034234e-03  -2.09291491e-04\n",
      "   2.47113043e-03   5.23869267e-04   2.29730138e-03   2.31414029e-04\n",
      "   3.94808807e-03   2.22459109e-03  -2.90130802e-05   7.61513201e-04\n",
      "   2.19604042e-04  -6.15983530e-04   1.42305906e-04   3.48315246e-04\n",
      "   5.20081550e-03  -2.52875233e-03   7.17384463e-03   2.41164850e-03\n",
      "   4.74083674e-04   1.16822065e-03  -2.34296409e-03   1.96759873e-03\n",
      "   5.52401412e-04   6.05695648e-03  -7.83777737e-04   9.08777223e-04\n",
      "  -1.26456518e-03  -2.91730868e-03   4.30586719e-03   1.91961277e-03\n",
      "   2.48558703e-03  -9.85992049e-04   5.46507613e-03   1.97774524e-03\n",
      "  -2.31360299e-03  -2.70742939e-03  -4.82598109e-03   5.83212118e-04\n",
      "   2.95596007e-03   1.71263507e-03  -9.11492639e-04   3.66762390e-03\n",
      "   1.64573056e-03   2.92772617e-04   4.33427607e-04   2.25324734e-04\n",
      "  -3.29864814e-03  -2.38961406e-03   3.95781246e-03  -2.93887371e-03\n",
      "   3.56151942e-03   4.25521900e-03   5.59172762e-03   6.08559169e-04\n",
      "  -1.04585511e-03   3.72630387e-03   4.78990993e-04  -7.37555456e-04\n",
      "  -1.98885641e-03  -6.01843701e-04  -1.87159217e-03  -3.17648675e-03\n",
      "   5.84143120e-03   2.03672215e-04   3.85806079e-03  -5.82000988e-04\n",
      "  -3.97834156e-03  -4.24222891e-03  -1.28565153e-03   8.64467687e-04\n",
      "   5.97262278e-03   2.85761149e-03  -2.72435512e-03   4.06447440e-03\n",
      "  -1.74611961e-03  -1.73011080e-03   2.53786492e-03   1.25282300e-04\n",
      "  -1.61188352e-03  -3.38483391e-03   7.14381408e-03   2.65939037e-03\n",
      "  -3.91239491e-03   1.91157992e-03   1.46460226e-03  -6.58015742e-03\n",
      "  -1.54303254e-03   1.02497320e-03  -2.59157863e-03   2.83871119e-03\n",
      "   1.58239723e-03  -1.12721852e-03  -1.70563782e-05  -1.84938842e-03\n",
      "  -2.49049849e-03  -3.89737451e-03   4.41089796e-04  -7.09777692e-06\n",
      "  -1.43139630e-03  -8.87764701e-04   1.52775808e-03   1.17124096e-03\n",
      "   2.90523971e-03   1.33909430e-03  -6.47472984e-03  -2.66230653e-03\n",
      "   2.46024225e-03   2.59002983e-03   3.04230049e-03   2.09611883e-04\n",
      "   4.15507851e-04  -2.73173920e-03   6.70682855e-04  -2.77775049e-03\n",
      "   6.59892470e-04  -2.74687289e-03   6.92961142e-04  -3.66841395e-04\n",
      "   3.01132256e-03  -1.39320927e-03   1.54222763e-03  -5.56542927e-04\n",
      "  -1.04805905e-03   3.71696820e-03  -1.83946328e-03  -3.89476897e-03\n",
      "   1.07606414e-03  -2.04540307e-03   2.35394583e-03  -4.31707864e-03\n",
      "  -3.53807120e-03  -3.97778037e-03  -1.54869157e-03  -1.52895956e-03\n",
      "   2.79311695e-03   1.91605453e-03   2.99049430e-04  -5.27545324e-03\n",
      "  -2.24915461e-03   5.76763854e-04   5.64906341e-04  -2.21240682e-03\n",
      "  -2.65458503e-03  -2.38389564e-03  -4.59916088e-03  -1.90449589e-03\n",
      "   7.84504621e-04   2.49738921e-03  -5.00598672e-03  -6.49487522e-03\n",
      "  -1.85955155e-04  -2.15005180e-03   7.21150771e-04   8.00050466e-04\n",
      "  -1.95550689e-04  -2.65276214e-03  -1.20021335e-04   3.87970065e-03\n",
      "   2.69280401e-03  -1.54047775e-04   1.08948839e-03  -2.17084944e-04\n",
      "   2.70375895e-03  -4.09848953e-03   2.46960624e-03  -2.03702255e-03\n",
      "   2.56472621e-03  -3.37469757e-03  -9.98414804e-04   5.11500293e-03\n",
      "  -1.84458670e-03  -1.67561854e-03   1.00876340e-03  -2.10765016e-03\n",
      "  -5.75008075e-04  -4.37028315e-04   8.24102596e-04  -1.65175419e-03\n",
      "   8.68314382e-04   1.87224190e-03  -2.24758159e-03  -3.37465380e-03\n",
      "   1.96777904e-03  -1.67030185e-03   6.65626982e-03  -1.57349824e-03\n",
      "   3.22878899e-03  -6.23650782e-04  -1.85044411e-03   1.01509154e-03\n",
      "   2.88437756e-03  -3.86157414e-03  -2.89628053e-04  -1.27416591e-03\n",
      "   8.74398272e-04   2.44227903e-03  -6.63779050e-04  -1.37721051e-03\n",
      "  -2.76978458e-03  -2.03873997e-03   8.27109697e-04   1.48337409e-03\n",
      "   2.42324222e-03   1.45395636e-03  -9.40835585e-04   6.32979578e-03\n",
      "   9.38200369e-04  -1.74147499e-03   6.86602279e-03   6.51537785e-04\n",
      "   2.93648042e-03  -7.64640521e-04  -6.33200121e-03   1.89359065e-03\n",
      "  -3.47667652e-03   8.05228123e-04  -1.01506757e-03   6.63722475e-05\n",
      "   2.82323756e-03  -1.71519708e-03  -2.34022977e-03   4.01581804e-04\n",
      "  -1.66211220e-03  -2.53997766e-03  -1.69679239e-03   3.91358142e-04\n",
      "   1.68560154e-03   1.92537217e-03  -2.74460638e-04   1.69843894e-04\n",
      "   2.12974151e-03  -3.11769247e-03  -1.88949862e-03  -1.57398742e-03\n",
      "  -3.26942102e-04   9.67944871e-04  -2.73464551e-04  -8.88045163e-04\n",
      "   3.52305944e-03  -7.81952357e-04  -1.67117226e-03  -2.89398735e-04\n",
      "  -9.76194655e-05  -2.13931806e-03   2.87538445e-04  -3.43232579e-03\n",
      "  -2.67206418e-03  -4.89610273e-04   2.13090529e-03   2.27989664e-03\n",
      "   1.38361375e-04   5.92116765e-03   3.50353877e-03  -2.72566042e-04\n",
      "  -3.95741496e-03  -1.42994948e-03  -2.16660145e-03  -1.85554626e-04\n",
      "  -3.17034647e-03  -1.67855111e-03  -2.45574085e-03   5.11729853e-04\n",
      "   1.40075404e-03  -4.30771923e-04  -1.29183571e-03  -2.65275716e-03\n",
      "  -8.01900500e-04  -9.48217010e-04   4.66557725e-04   1.66729563e-03\n",
      "   2.42536245e-04  -1.45820073e-03  -4.71966051e-04  -3.32876378e-03\n",
      "   4.43066996e-04   5.35150123e-03  -2.65839547e-03   2.82031547e-03\n",
      "   3.09461962e-03   4.25168140e-04  -2.51957371e-03  -5.49781737e-05\n",
      "  -1.71196216e-03   2.41364918e-03   8.85345453e-05  -2.05367987e-04\n",
      "   3.18518500e-03  -2.47689810e-04  -2.65083888e-03   1.67546254e-03\n",
      "   2.59969737e-03   1.18891814e-04  -2.37204974e-03  -5.45791290e-04\n",
      "   1.37819773e-03   4.14056867e-05  -4.68550650e-03   2.43952429e-03\n",
      "   2.02022682e-03  -2.34486894e-04   1.18100119e-03  -4.58959195e-04\n",
      "  -4.68062235e-03  -7.03655087e-04   3.39197458e-03   1.29791803e-03\n",
      "   1.63845479e-03   1.46510445e-03  -7.87511060e-04   6.08602938e-04\n",
      "  -2.39852499e-04   5.01261010e-05  -8.70509462e-04   2.13006076e-03\n",
      "  -3.42954256e-03  -1.52219604e-04  -5.71048355e-04   1.05400491e-03\n",
      "   4.95853472e-03  -2.93983414e-03   4.01924318e-03   6.23124072e-04\n",
      "   5.18711332e-03  -3.27446988e-06   5.79687430e-04  -1.35621178e-03\n",
      "   5.25837670e-03   3.89221846e-03  -1.68253147e-03  -3.91386250e-03\n",
      "  -1.26035817e-03  -3.21517845e-03   1.06648397e-03  -3.92577783e-03\n",
      "   3.13725044e-03  -1.69307722e-03  -2.27554985e-03  -1.14156471e-03\n",
      "   4.40181615e-03   3.94570146e-03  -6.33071543e-04   3.37205459e-03\n",
      "   2.54970846e-03  -1.35595191e-03  -1.36955119e-03  -3.75600892e-03\n",
      "   3.76638803e-04   1.56747972e-03  -2.88936107e-03  -1.28812813e-03\n",
      "   1.04064756e-03  -1.17647408e-03  -1.26418143e-03  -4.73917985e-03\n",
      "  -6.11298728e-03  -6.59493720e-04   1.36164541e-03   3.74509441e-04\n",
      "  -2.96893773e-03  -5.71429729e-03   1.09312379e-03   6.08157740e-04\n",
      "   7.35635690e-04   2.56980336e-03   1.88862437e-03   8.98550900e-04\n",
      "  -1.17418522e-03   2.89708580e-03  -5.15443976e-04  -4.24210266e-03\n",
      "   3.46708624e-04   1.47694512e-04], 2)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py:106: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  warnings.warn(message, mplDeprecation, stacklevel=1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc86657a208>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "optimal_weights_2 = OptimalHoldingsStrictFactor(\n",
    "    weights_max=0.02,\n",
    "    weights_min=-0.02,\n",
    "    risk_cap=0.0015,\n",
    "    factor_max=0.015,\n",
    "    factor_min=-0.015).find(alpha_vector, risk_model['factor_betas'], risk_model['factor_cov_matrix'], risk_model['idiosyncratic_var_vector'])\n",
    "\n",
    "optimal_weights_2.plot.bar(legend=None, title='Portfolio % Holdings by Stock')\n",
    "x_axis = plt.axes().get_xaxis()\n",
    "x_axis.set_visible(False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc865e95390>"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc866898710>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "project_helper.get_factor_exposures(risk_model['factor_betas'], optimal_weights_2).plot.bar(\n",
    "    title='Portfolio Net Factor Exposures',\n",
    "    legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Submission\n",
    "Now that you're done with the project, it's time to submit it. Click the submit button in the bottom right. One of our reviewers will give you feedback on your project with a pass or not passed grade. You can continue to the next section while you wait for feedback."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
